svf-tools 1.0.319 → 1.0.320
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/SVFGBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +102 -101
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -2
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/include/Graphs/SVFGOPT.h +3 -2
- package/lib/MSSA/SVFGBuilder.cpp +3 -2
- package/package.json +1 -1
- package/tools/Example/svf-ex.cpp +1 -1
|
@@ -953,9 +953,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
953
953
|
<p>Constructor. </p>
|
|
954
954
|
|
|
955
955
|
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00064">64</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
956
|
-
<div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  : <a class="code" href="classSVF_1_1SVFG.html#a68965c5a9cc5136aa0b593851c60ff12">SVFG</a>(_mssa, <a class="code" href="classSVF_1_1VFG.html#a3867c591a231bad0aa2e6ab7c095a42f">kind</a>)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a> = <a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a> = <a class="code" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">keepActualOutFormalIn</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_a65bba62d9b62bf2bdbbda69540eeb38d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">SVF::SVFGOPT::keepAllSelfCycle</a></div><div class="ttdeci">bool keepAllSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
957
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a7e57ca56a587a5b59543b5bab7fe794d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">SVF::SVFGOPT::keepActualOutFormalIn</a></div><div class="ttdeci">bool keepActualOutFormalIn</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
958
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac68a53c567929ba8b69c00e3e8d9d30f"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">SVF::SVFGOPT::keepContextSelfCycle</a></div><div class="ttdeci">bool keepContextSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
956
|
+
<div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  : <a class="code" href="classSVF_1_1SVFG.html#a68965c5a9cc5136aa0b593851c60ff12">SVFG</a>(_mssa, <a class="code" href="classSVF_1_1VFG.html#a3867c591a231bad0aa2e6ab7c095a42f">kind</a>)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a> = <a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a> = <a class="code" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">keepActualOutFormalIn</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_a65bba62d9b62bf2bdbbda69540eeb38d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">SVF::SVFGOPT::keepAllSelfCycle</a></div><div class="ttdeci">bool keepAllSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00356">SVFGOPT.h:356</a></div></div>
|
|
957
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a7e57ca56a587a5b59543b5bab7fe794d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">SVF::SVFGOPT::keepActualOutFormalIn</a></div><div class="ttdeci">bool keepActualOutFormalIn</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00355">SVFGOPT.h:355</a></div></div>
|
|
958
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac68a53c567929ba8b69c00e3e8d9d30f"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">SVF::SVFGOPT::keepContextSelfCycle</a></div><div class="ttdeci">bool keepContextSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00357">SVFGOPT.h:357</a></div></div>
|
|
959
959
|
<div class="ttc" id="classSVF_1_1VFG_html_a3867c591a231bad0aa2e6ab7c095a42f"><div class="ttname"><a href="classSVF_1_1VFG.html#a3867c591a231bad0aa2e6ab7c095a42f">SVF::VFG::kind</a></div><div class="ttdeci">VFGK kind</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00105">VFG.h:105</a></div></div>
|
|
960
960
|
<div class="ttc" id="classSVF_1_1SVFG_html_a68965c5a9cc5136aa0b593851c60ff12"><div class="ttname"><a href="classSVF_1_1SVFG.html#a68965c5a9cc5136aa0b593851c60ff12">SVF::SVFG::SVFG</a></div><div class="ttdeci">SVFG(MemSSA *mssa, VFGK k)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00175">SVFG.cpp:175</a></div></div>
|
|
961
961
|
</div><!-- fragment -->
|
|
@@ -1017,8 +1017,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1017
1017
|
|
|
1018
1018
|
<p>Check if actual-in/actual-out exist at indirect call site. </p>
|
|
1019
1019
|
|
|
1020
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
1021
|
-
<div class="fragment"><div class="line"><a name="
|
|
1020
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00292">292</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
1021
|
+
<div class="fragment"><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()->isIndirectCallSites(ai->getCallSite()));</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00107">SVFIR.h:107</a></div></div>
|
|
1022
1022
|
</div><!-- fragment -->
|
|
1023
1023
|
</div>
|
|
1024
1024
|
</div>
|
|
@@ -1046,8 +1046,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1046
1046
|
</table>
|
|
1047
1047
|
</div><div class="memdoc">
|
|
1048
1048
|
|
|
1049
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
1050
|
-
<div class="fragment"><div class="line"><a name="
|
|
1049
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00296">296</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
1050
|
+
<div class="fragment"><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()->isIndirectCallSites(ao->getCallSite()));</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00107">SVFIR.h:107</a></div></div>
|
|
1051
1051
|
</div><!-- fragment -->
|
|
1052
1052
|
</div>
|
|
1053
1053
|
</div>
|
|
@@ -1133,12 +1133,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1133
1133
|
|
|
1134
1134
|
<p>Add inter PHI <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node for actual return. </p>
|
|
1135
1135
|
|
|
1136
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
1137
|
-
<div class="fragment"><div class="line"><a name="
|
|
1136
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00252">252</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
1137
|
+
<div class="fragment"><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="namespaceSVF.html#a0f7ff1d9a479df87241b45bb9c81d3ca">InterPHISVFGNode</a>* sNode = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#a0f7ff1d9a479df87241b45bb9c81d3ca">InterPHISVFGNode</a>(<a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++,ar);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode, <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#a6d66c83cb1656d0f8ec8b8b65a9e9c41">getRetBlockNode</a>(ar->getCallSite()->getCallSite()));</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#af504407e6cd42cfe2ea27165ff15df40">resetDef</a>(ar->getRev(),sNode);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div><div class="ttc" id="namespaceSVF_html_a0f7ff1d9a479df87241b45bb9c81d3ca"><div class="ttname"><a href="namespaceSVF.html#a0f7ff1d9a479df87241b45bb9c81d3ca">SVF::InterPHISVFGNode</a></div><div class="ttdeci">InterPHIVFGNode InterPHISVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00058">SVFG.h:58</a></div></div>
|
|
1138
1138
|
<div class="ttc" id="classSVF_1_1VFG_html_a25c2bbbc2e966e2aaa59a5b83363557a"><div class="ttname"><a href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">SVF::VFG::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00104">VFG.h:104</a></div></div>
|
|
1139
1139
|
<div class="ttc" id="classSVF_1_1VFG_html_acb181d4f9faa40578c80e2018e2742b8"><div class="ttname"><a href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">SVF::VFG::totalVFGNode</a></div><div class="ttdeci">NodeID totalVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00088">VFG.h:88</a></div></div>
|
|
1140
1140
|
<div class="ttc" id="classSVF_1_1ICFG_html_a6d66c83cb1656d0f8ec8b8b65a9e9c41"><div class="ttname"><a href="classSVF_1_1ICFG.html#a6d66c83cb1656d0f8ec8b8b65a9e9c41">SVF::ICFG::getRetBlockNode</a></div><div class="ttdeci">RetBlockNode * getRetBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00210">ICFG.cpp:210</a></div></div>
|
|
1141
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_af504407e6cd42cfe2ea27165ff15df40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#af504407e6cd42cfe2ea27165ff15df40">SVF::SVFGOPT::resetDef</a></div><div class="ttdeci">void resetDef(const PAGNode *pagNode, const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1141
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_af504407e6cd42cfe2ea27165ff15df40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#af504407e6cd42cfe2ea27165ff15df40">SVF::SVFGOPT::resetDef</a></div><div class="ttdeci">void resetDef(const PAGNode *pagNode, const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00260">SVFGOPT.h:260</a></div></div>
|
|
1142
1142
|
<div class="ttc" id="classSVF_1_1SVFG_html_a88e1f6f77421c5274ceeb14928bdcb43"><div class="ttname"><a href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">SVF::SVFG::addSVFGNode</a></div><div class="ttdeci">virtual void addSVFGNode(SVFGNode *node, ICFGNode *icfgNode)</div><div class="ttdoc">Add SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00391">SVFG.h:391</a></div></div>
|
|
1143
1143
|
<div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00133">SVFIR.h:133</a></div></div>
|
|
1144
1144
|
</div><!-- fragment -->
|
|
@@ -1170,12 +1170,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1170
1170
|
|
|
1171
1171
|
<p>Add inter PHI <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node for formal parameter. </p>
|
|
1172
1172
|
|
|
1173
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
1174
|
-
<div class="fragment"><div class="line"><a name="
|
|
1173
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00244">244</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
1174
|
+
<div class="fragment"><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>  <a class="code" href="namespaceSVF.html#a0f7ff1d9a479df87241b45bb9c81d3ca">InterPHISVFGNode</a>* sNode = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#a0f7ff1d9a479df87241b45bb9c81d3ca">InterPHISVFGNode</a>(<a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++,fp);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode, <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#ae1ef14cdda27a2062c4c454750444108">getFunEntryBlockNode</a>(fp->getFun()));</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#af504407e6cd42cfe2ea27165ff15df40">resetDef</a>(fp->getParam(),sNode);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div><div class="ttc" id="namespaceSVF_html_a0f7ff1d9a479df87241b45bb9c81d3ca"><div class="ttname"><a href="namespaceSVF.html#a0f7ff1d9a479df87241b45bb9c81d3ca">SVF::InterPHISVFGNode</a></div><div class="ttdeci">InterPHIVFGNode InterPHISVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00058">SVFG.h:58</a></div></div>
|
|
1175
1175
|
<div class="ttc" id="classSVF_1_1VFG_html_a25c2bbbc2e966e2aaa59a5b83363557a"><div class="ttname"><a href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">SVF::VFG::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00104">VFG.h:104</a></div></div>
|
|
1176
1176
|
<div class="ttc" id="classSVF_1_1VFG_html_acb181d4f9faa40578c80e2018e2742b8"><div class="ttname"><a href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">SVF::VFG::totalVFGNode</a></div><div class="ttdeci">NodeID totalVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00088">VFG.h:88</a></div></div>
|
|
1177
1177
|
<div class="ttc" id="classSVF_1_1ICFG_html_ae1ef14cdda27a2062c4c454750444108"><div class="ttname"><a href="classSVF_1_1ICFG.html#ae1ef14cdda27a2062c4c454750444108">SVF::ICFG::getFunEntryBlockNode</a></div><div class="ttdeci">FunEntryBlockNode * getFunEntryBlockNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00230">ICFG.cpp:230</a></div></div>
|
|
1178
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_af504407e6cd42cfe2ea27165ff15df40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#af504407e6cd42cfe2ea27165ff15df40">SVF::SVFGOPT::resetDef</a></div><div class="ttdeci">void resetDef(const PAGNode *pagNode, const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1178
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_af504407e6cd42cfe2ea27165ff15df40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#af504407e6cd42cfe2ea27165ff15df40">SVF::SVFGOPT::resetDef</a></div><div class="ttdeci">void resetDef(const PAGNode *pagNode, const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00260">SVFGOPT.h:260</a></div></div>
|
|
1179
1179
|
<div class="ttc" id="classSVF_1_1SVFG_html_a88e1f6f77421c5274ceeb14928bdcb43"><div class="ttname"><a href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">SVF::SVFG::addSVFGNode</a></div><div class="ttdeci">virtual void addSVFGNode(SVFGNode *node, ICFGNode *icfgNode)</div><div class="ttdoc">Add SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00391">SVFG.h:391</a></div></div>
|
|
1180
1180
|
<div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00133">SVFIR.h:133</a></div></div>
|
|
1181
1181
|
</div><!-- fragment -->
|
|
@@ -1215,8 +1215,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1215
1215
|
</table>
|
|
1216
1216
|
</div><div class="memdoc">
|
|
1217
1217
|
|
|
1218
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
1219
|
-
<div class="fragment"><div class="line"><a name="
|
|
1218
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00238">238</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
1219
|
+
<div class="fragment"><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  phi->setOpVer(phi->getOpVerNum(), operand);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  }</div></div><!-- fragment -->
|
|
1220
1220
|
</div>
|
|
1221
1221
|
</div>
|
|
1222
1222
|
<a id="a72c573ecbc12c44e6ce1d67527f888a8"></a>
|
|
@@ -1247,9 +1247,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1247
1247
|
<li>it doesn't have incoming and outgoing call/ret at the same time. </li>
|
|
1248
1248
|
</ol>
|
|
1249
1249
|
|
|
1250
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
1251
|
-
<div class="fragment"><div class="line"><a name="
|
|
1252
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a0e78edc04f5e8bfcca7a3f04f7568665"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a0e78edc04f5e8bfcca7a3f04f7568665">SVF::SVFGOPT::isDefOfAInFOut</a></div><div class="ttdeci">bool isDefOfAInFOut(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1250
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00211">211</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
1251
|
+
<div class="fragment"><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> MSSAPHISVFGNode* phi = SVFUtil::dyn_cast<MSSAPHISVFGNode>(node))</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGOPT.html#aa23c967a8fcadbaf47e93a5b3610c84d">isConnectingTwoCallSites</a>(phi) == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1SVFGOPT.html#a0e78edc04f5e8bfcca7a3f04f7568665">isDefOfAInFOut</a>(phi) == <span class="keyword">false</span>)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(phi);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_a925f39665e13b18dfe66c2dded44c194"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">SVF::SVFGOPT::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">storing MSSAPHI nodes which may be removed. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00353">SVFGOPT.h:353</a></div></div>
|
|
1252
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a0e78edc04f5e8bfcca7a3f04f7568665"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a0e78edc04f5e8bfcca7a3f04f7568665">SVF::SVFGOPT::isDefOfAInFOut</a></div><div class="ttdeci">bool isDefOfAInFOut(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00285">SVFGOPT.h:285</a></div></div>
|
|
1253
1253
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
|
|
1254
1254
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_aa23c967a8fcadbaf47e93a5b3610c84d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#aa23c967a8fcadbaf47e93a5b3610c84d">SVF::SVFGOPT::isConnectingTwoCallSites</a></div><div class="ttdeci">bool isConnectingTwoCallSites(const SVFGNode *node) const</div><div class="ttdoc">Return TRUE if this node has both incoming call/ret and outgoing call/ret edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00293">SVFGOPT.cpp:293</a></div></div>
|
|
1255
1255
|
</div><!-- fragment -->
|
|
@@ -1312,7 +1312,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1312
1312
|
<div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
|
|
1313
1313
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_afa99da68ef756d968d39a85f0fac3649"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#afa99da68ef756d968d39a85f0fac3649">SVF::SVFGOPT::addRetIndirectSVFGEdge</a></div><div class="ttdeci">SVFGEdge * addRetIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS &cpts)</div><div class="ttdoc">Add indirect ret edge from src to dst with one call site ID. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00079">SVFGOPT.cpp:79</a></div></div>
|
|
1314
1314
|
<div class="ttc" id="classSVF_1_1SVFG_html_ad03f0064d3a1ff397b35a606304a9c80"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">SVF::SVFG::addIntraIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addIntraIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &cpts)</div><div class="ttdoc">Add indirect def-use edges of a memory region between two statements,. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00426">SVFG.cpp:426</a></div></div>
|
|
1315
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a6d5cdb3b78e4ed482b0da4c64323b463"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a6d5cdb3b78e4ed482b0da4c64323b463">SVF::SVFGOPT::bothInterEdges</a></div><div class="ttdeci">bool bothInterEdges(const SVFGEdge *edge1, const SVFGEdge *edge2) const</div><div class="ttdoc">Return TRUE if both edges are indirect call/ret edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1315
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a6d5cdb3b78e4ed482b0da4c64323b463"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a6d5cdb3b78e4ed482b0da4c64323b463">SVF::SVFGOPT::bothInterEdges</a></div><div class="ttdeci">bool bothInterEdges(const SVFGEdge *edge1, const SVFGEdge *edge2) const</div><div class="ttdoc">Return TRUE if both edges are indirect call/ret edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00231">SVFGOPT.h:231</a></div></div>
|
|
1316
1316
|
<div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00042">SVFGEdge.h:42</a></div></div>
|
|
1317
1317
|
<div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html_a30aca718d25924f1babdf348bb0ace71"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">SVF::IndirectSVFGEdge::getPointsTo</a></div><div class="ttdeci">const NodeBS & getPointsTo() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00061">SVFGEdge.h:61</a></div></div>
|
|
1318
1318
|
</div><!-- fragment -->
|
|
@@ -1409,8 +1409,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1409
1409
|
|
|
1410
1410
|
<p>Return TRUE if both edges are indirect call/ret edges. </p>
|
|
1411
1411
|
|
|
1412
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
1413
|
-
<div class="fragment"><div class="line"><a name="
|
|
1412
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00231">231</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
1413
|
+
<div class="fragment"><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="keywordtype">bool</span> inter1 = (SVFUtil::isa<CallIndSVFGEdge>(edge1) || SVFUtil::isa<RetIndSVFGEdge>(edge1));</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordtype">bool</span> inter2 = (SVFUtil::isa<CallIndSVFGEdge>(edge2) || SVFUtil::isa<RetIndSVFGEdge>(edge2));</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span> (inter1 && inter2);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div></div><!-- fragment -->
|
|
1414
1414
|
</div>
|
|
1415
1415
|
</div>
|
|
1416
1416
|
<a id="af4d2c6d2e3b316b256f860801fe3b178"></a>
|
|
@@ -1444,7 +1444,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1444
1444
|
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8cpp_source.html#l00047">47</a> of file <a class="el" href="SVFGOPT_8cpp_source.html">SVFGOPT.cpp</a>.</p>
|
|
1445
1445
|
<div class="fragment"><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>  <a class="code" href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">SVFG::buildSVFG</a>();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">Options::DumpVFG</a>)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">dump</a>(<span class="stringliteral">"SVFG_before_opt"</span>);</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>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVFUtil::pasMsg</a>(<span class="stringliteral">"\tSVFG Optimisation\n"</span>));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">keepActualOutFormalIn</a> = <a class="code" href="classSVF_1_1Options.html#acd687c31bb6662940ab8a1c3d17dc1ef">Options::KeepAOFI</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">stat</a>-><a class="code" href="classSVF_1_1SVFGStat.html#acb80953b39ce247679242df4f042ab79">sfvgOptStart</a>();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a4c698184cc23730fb44904d4048958da">handleInterValueFlow</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a21429d8c3fba209d9cdc22e3623c5573">handleIntraValueFlow</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">stat</a>-><a class="code" href="classSVF_1_1SVFGStat.html#aaec3a7f29b3ded0c971d57376d2779ff">sfvgOptEnd</a>();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> }</div><div class="ttc" id="classSVF_1_1SVFG_html_a5fdaddc52e7342b834d76d64c1a1e498"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">SVF::SVFG::dump</a></div><div class="ttdeci">void dump(const std::string &file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00539">SVFG.cpp:539</a></div></div>
|
|
1446
1446
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00101">SVFUtil.cpp:101</a></div></div>
|
|
1447
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a7e57ca56a587a5b59543b5bab7fe794d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">SVF::SVFGOPT::keepActualOutFormalIn</a></div><div class="ttdeci">bool keepActualOutFormalIn</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1447
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a7e57ca56a587a5b59543b5bab7fe794d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">SVF::SVFGOPT::keepActualOutFormalIn</a></div><div class="ttdeci">bool keepActualOutFormalIn</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00355">SVFGOPT.h:355</a></div></div>
|
|
1448
1448
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a21429d8c3fba209d9cdc22e3623c5573"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a21429d8c3fba209d9cdc22e3623c5573">SVF::SVFGOPT::handleIntraValueFlow</a></div><div class="ttdeci">void handleIntraValueFlow()</div><div class="ttdoc">Remove MSSAPHI SVFG nodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00393">SVFGOPT.cpp:393</a></div></div>
|
|
1449
1449
|
<div class="ttc" id="classSVF_1_1SVFG_html_a0920e9f9896531959d74ae61013d96d6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">SVF::SVFG::buildSVFG</a></div><div class="ttdeci">virtual void buildSVFG()</div><div class="ttdoc">Start building SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00199">SVFG.cpp:199</a></div></div>
|
|
1450
1450
|
<div class="ttc" id="classSVF_1_1Options_html_a3061c75f7491dd737222b1b877721070"><div class="ttname"><a href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">SVF::Options::DumpVFG</a></div><div class="ttdeci">static const llvm::cl::opt< bool > DumpVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00121">Options.h:121</a></div></div>
|
|
@@ -1491,12 +1491,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1491
1491
|
|
|
1492
1492
|
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8cpp_source.html#l00482">482</a> of file <a class="el" href="SVFGOPT_8cpp_source.html">SVFGOPT.cpp</a>.</p>
|
|
1493
1493
|
<div class="fragment"><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> inEdgeIt = node-><a class="code" href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">InEdgeBegin</a>();</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> inEdgeEit = node-><a class="code" href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">InEdgeEnd</a>();</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordflow">for</span> (; inEdgeIt != inEdgeEit; ++inEdgeIt)</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  {</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* preEdge = *inEdgeIt;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcNode = preEdge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>();</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordtype">bool</span> added = <span class="keyword">false</span>;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> outEdgeIt = node-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>();</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> outEdgeEit = node-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>();</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">for</span> (; outEdgeIt != outEdgeEit; ++outEdgeIt)</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* succEdge = *outEdgeIt;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstNode = (*outEdgeIt)->getDstNode();</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="keywordflow">if</span> (srcNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() != dstNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  && <a class="code" href="classSVF_1_1SVFGOPT.html#a6aeeb727f1d9d917ff6cffbb88350b7a">addNewSVFGEdge</a>(srcNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), dstNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), preEdge, succEdge))</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  added = <span class="keyword">true</span>;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  {</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">addIntoWorklist</a>(dstNode);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  }</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordflow">if</span> (added == <span class="keyword">false</span>)</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  {</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">addIntoWorklist</a>(srcNode);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  }</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  }</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">removeAllEdges</a>(node);</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span> }</div><div class="ttc" id="classSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00202">GenericGraph.h:202</a></div></div>
|
|
1494
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a72c573ecbc12c44e6ce1d67527f888a8"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">SVF::SVFGOPT::addIntoWorklist</a></div><div class="ttdeci">bool addIntoWorklist(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1494
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a72c573ecbc12c44e6ce1d67527f888a8"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">SVF::SVFGOPT::addIntoWorklist</a></div><div class="ttdeci">bool addIntoWorklist(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00211">SVFGOPT.h:211</a></div></div>
|
|
1495
1495
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ae5b113921530eee6afe58a65d8e5b3a7"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">SVF::GenericNode::InEdgeBegin</a></div><div class="ttdeci">iterator InEdgeBegin()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00210">GenericGraph.h:210</a></div></div>
|
|
1496
1496
|
<div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
|
|
1497
1497
|
<div class="ttc" id="classSVF_1_1GenericNode_html_afe6a7b286d9af4992f41b59612fd2900"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">SVF::GenericNode::InEdgeEnd</a></div><div class="ttdeci">iterator InEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00214">GenericGraph.h:214</a></div></div>
|
|
1498
1498
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00085">GenericGraph.h:85</a></div></div>
|
|
1499
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac15b3c2cb127b17ebad3a30fc04b6f40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">SVF::SVFGOPT::removeAllEdges</a></div><div class="ttdeci">void removeAllEdges(const SVFGNode *node)</div><div class="ttdoc">Remove edges of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1499
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac15b3c2cb127b17ebad3a30fc04b6f40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">SVF::SVFGOPT::removeAllEdges</a></div><div class="ttdeci">void removeAllEdges(const SVFGNode *node)</div><div class="ttdoc">Remove edges of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00330">SVFGOPT.h:330</a></div></div>
|
|
1500
1500
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a6aeeb727f1d9d917ff6cffbb88350b7a"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a6aeeb727f1d9d917ff6cffbb88350b7a">SVF::SVFGOPT::addNewSVFGEdge</a></div><div class="ttdeci">bool addNewSVFGEdge(NodeID srcId, NodeID dstId, const SVFGEdge *preEdge, const SVFGEdge *succEdge)</div><div class="ttdoc">Add new SVFG edge from src to dst. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00525">SVFGOPT.cpp:525</a></div></div>
|
|
1501
1501
|
<div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
|
|
1502
1502
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00165">GenericGraph.h:165</a></div></div>
|
|
@@ -1539,13 +1539,13 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1539
1539
|
|
|
1540
1540
|
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8cpp_source.html#l00335">335</a> of file <a class="el" href="SVFGOPT_8cpp_source.html">SVFGOPT.cpp</a>.</p>
|
|
1541
1541
|
<div class="fragment"><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">if</span> (SVFUtil::isa<ActualParmSVFGNode>(node) || SVFUtil::isa<FormalParmSVFGNode>(node)</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  || SVFUtil::isa<ActualRetSVFGNode>(node) || SVFUtil::isa<FormalRetSVFGNode>(node))</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualINSVFGNode>(node) || SVFUtil::isa<ActualOUTSVFGNode>(node)</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  || SVFUtil::isa<FormalINSVFGNode>(node) || SVFUtil::isa<FormalOUTSVFGNode>(node)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  || SVFUtil::isa<MSSAPHISVFGNode>(node))</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGOPT.html#aa23c967a8fcadbaf47e93a5b3610c84d">isConnectingTwoCallSites</a>(node))</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* ai = SVFUtil::dyn_cast<ActualINSVFGNode>(node))</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFGOPT.html#af6fa424cd7518b330a6017839a789bf6">actualInOfIndCS</a>(ai) == <span class="keyword">false</span>);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* ao = SVFUtil::dyn_cast<ActualOUTSVFGNode>(node))</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFGOPT.html#a79c435e456474b41e4402c2c9c269fc9">actualOutOfIndCS</a>(ao) == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1SVFGOPT.html#a0e78edc04f5e8bfcca7a3f04f7568665">isDefOfAInFOut</a>(node) == <span class="keyword">false</span>);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* fi = SVFUtil::dyn_cast<FormalINSVFGNode>(node))</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFGOPT.html#a6eeec9fa475316f52689728a1af7bd05">formalInOfAddressTakenFunc</a>(fi) == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1SVFGOPT.html#a0e78edc04f5e8bfcca7a3f04f7568665">isDefOfAInFOut</a>(node) == <span class="keyword">false</span>);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  }</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* fo = SVFUtil::dyn_cast<FormalOUTSVFGNode>(node))</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="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFGOPT.html#a86cb63258b49077587d44ba45d023f02">formalOutOfAddressTakenFunc</a>(fo) == <span class="keyword">false</span>);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  }</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span> }</div><div class="ttc" id="classSVF_1_1FormalOUTSVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalOUTSVFGNode.html">SVF::FormalOUTSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00135">SVFGNode.h:135</a></div></div>
|
|
1542
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a79c435e456474b41e4402c2c9c269fc9"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a79c435e456474b41e4402c2c9c269fc9">SVF::SVFGOPT::actualOutOfIndCS</a></div><div class="ttdeci">bool actualOutOfIndCS(const ActualOUTSVFGNode *ao) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1543
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a0e78edc04f5e8bfcca7a3f04f7568665"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a0e78edc04f5e8bfcca7a3f04f7568665">SVF::SVFGOPT::isDefOfAInFOut</a></div><div class="ttdeci">bool isDefOfAInFOut(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1542
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a79c435e456474b41e4402c2c9c269fc9"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a79c435e456474b41e4402c2c9c269fc9">SVF::SVFGOPT::actualOutOfIndCS</a></div><div class="ttdeci">bool actualOutOfIndCS(const ActualOUTSVFGNode *ao) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00296">SVFGOPT.h:296</a></div></div>
|
|
1543
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a0e78edc04f5e8bfcca7a3f04f7568665"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a0e78edc04f5e8bfcca7a3f04f7568665">SVF::SVFGOPT::isDefOfAInFOut</a></div><div class="ttdeci">bool isDefOfAInFOut(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00285">SVFGOPT.h:285</a></div></div>
|
|
1544
1544
|
<div class="ttc" id="classSVF_1_1ActualOUTSVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualOUTSVFGNode.html">SVF::ActualOUTSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00226">SVFGNode.h:226</a></div></div>
|
|
1545
1545
|
<div class="ttc" id="classSVF_1_1ActualINSVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualINSVFGNode.html">SVF::ActualINSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00177">SVFGNode.h:177</a></div></div>
|
|
1546
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a6eeec9fa475316f52689728a1af7bd05"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a6eeec9fa475316f52689728a1af7bd05">SVF::SVFGOPT::formalInOfAddressTakenFunc</a></div><div class="ttdeci">bool formalInOfAddressTakenFunc(const FormalINSVFGNode *fi) const</div><div class="ttdoc">Check if formal-in/formal-out reside in address-taken function. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1547
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a86cb63258b49077587d44ba45d023f02"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a86cb63258b49077587d44ba45d023f02">SVF::SVFGOPT::formalOutOfAddressTakenFunc</a></div><div class="ttdeci">bool formalOutOfAddressTakenFunc(const FormalOUTSVFGNode *fo) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1548
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_af6fa424cd7518b330a6017839a789bf6"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#af6fa424cd7518b330a6017839a789bf6">SVF::SVFGOPT::actualInOfIndCS</a></div><div class="ttdeci">bool actualInOfIndCS(const ActualINSVFGNode *ai) const</div><div class="ttdoc">Check if actual-in/actual-out exist at indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1546
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a6eeec9fa475316f52689728a1af7bd05"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a6eeec9fa475316f52689728a1af7bd05">SVF::SVFGOPT::formalInOfAddressTakenFunc</a></div><div class="ttdeci">bool formalInOfAddressTakenFunc(const FormalINSVFGNode *fi) const</div><div class="ttdoc">Check if formal-in/formal-out reside in address-taken function. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00304">SVFGOPT.h:304</a></div></div>
|
|
1547
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a86cb63258b49077587d44ba45d023f02"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a86cb63258b49077587d44ba45d023f02">SVF::SVFGOPT::formalOutOfAddressTakenFunc</a></div><div class="ttdeci">bool formalOutOfAddressTakenFunc(const FormalOUTSVFGNode *fo) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00308">SVFGOPT.h:308</a></div></div>
|
|
1548
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_af6fa424cd7518b330a6017839a789bf6"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#af6fa424cd7518b330a6017839a789bf6">SVF::SVFGOPT::actualInOfIndCS</a></div><div class="ttdeci">bool actualInOfIndCS(const ActualINSVFGNode *ai) const</div><div class="ttdoc">Check if actual-in/actual-out exist at indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00292">SVFGOPT.h:292</a></div></div>
|
|
1549
1549
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_aa23c967a8fcadbaf47e93a5b3610c84d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#aa23c967a8fcadbaf47e93a5b3610c84d">SVF::SVFGOPT::isConnectingTwoCallSites</a></div><div class="ttdeci">bool isConnectingTwoCallSites(const SVFGNode *node) const</div><div class="ttdoc">Return TRUE if this node has both incoming call/ret and outgoing call/ret edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00293">SVFGOPT.cpp:293</a></div></div>
|
|
1550
1550
|
<div class="ttc" id="classSVF_1_1FormalINSVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalINSVFGNode.html">SVF::FormalINSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00090">SVFGNode.h:90</a></div></div>
|
|
1551
1551
|
</div><!-- fragment -->
|
|
@@ -1589,11 +1589,11 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1589
1589
|
<div class="ttc" id="classSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy & getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00182">GenericGraph.h:182</a></div></div>
|
|
1590
1590
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
|
|
1591
1591
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
1592
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a65bba62d9b62bf2bdbbda69540eeb38d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">SVF::SVFGOPT::keepAllSelfCycle</a></div><div class="ttdeci">bool keepAllSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1592
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a65bba62d9b62bf2bdbbda69540eeb38d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">SVF::SVFGOPT::keepAllSelfCycle</a></div><div class="ttdeci">bool keepAllSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00356">SVFGOPT.h:356</a></div></div>
|
|
1593
1593
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
|
|
1594
1594
|
<div class="ttc" id="classSVF_1_1VFGEdge_html_a557334ef75bb5479b045f68c27b38701"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a557334ef75bb5479b045f68c27b38701">SVF::VFGEdge::SVFGEdgeSetTy</a></div><div class="ttdeci">VFGEdgeSetTy SVFGEdgeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00118">VFGEdge.h:118</a></div></div>
|
|
1595
1595
|
<div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
|
|
1596
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac68a53c567929ba8b69c00e3e8d9d30f"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">SVF::SVFGOPT::keepContextSelfCycle</a></div><div class="ttdeci">bool keepContextSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1596
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac68a53c567929ba8b69c00e3e8d9d30f"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">SVF::SVFGOPT::keepContextSelfCycle</a></div><div class="ttdeci">bool keepContextSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00357">SVFGOPT.h:357</a></div></div>
|
|
1597
1597
|
<div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
|
|
1598
1598
|
</div><!-- fragment -->
|
|
1599
1599
|
</div>
|
|
@@ -1648,10 +1648,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1648
1648
|
|
|
1649
1649
|
<p>Reimplemented from <a class="el" href="classSVF_1_1SVFG.html#ac9ab2a95cd7a09bbe4b4aa3e6fafaf62">SVF::SVFG</a>.</p>
|
|
1650
1650
|
|
|
1651
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
1652
|
-
<div class="fragment"><div class="line"><a name="
|
|
1651
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00120">120</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
1652
|
+
<div class="fragment"><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> intersection = actualIn->getPointsTo();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  intersection &= formalIn->getPointsTo();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span> (intersection.empty() == <span class="keyword">false</span>)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> aiDef = <a class="code" href="classSVF_1_1SVFGOPT.html#a550f93b640a6fd68773fbafd2944d7df">getActualINDef</a>(actualIn->getId());</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1SVFGOPT.html#a11dc712bf74ba61160fed7a5c3efaeee">addCallIndirectSVFGEdge</a>(aiDef,formalIn->getId(),csId,intersection);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  edges.insert(edge);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
1653
1653
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a11dc712bf74ba61160fed7a5c3efaeee"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a11dc712bf74ba61160fed7a5c3efaeee">SVF::SVFGOPT::addCallIndirectSVFGEdge</a></div><div class="ttdeci">SVFGEdge * addCallIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS &cpts)</div><div class="ttdoc">Add inter-procedural value flow edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00068">SVFGOPT.cpp:68</a></div></div>
|
|
1654
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a550f93b640a6fd68773fbafd2944d7df"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a550f93b640a6fd68773fbafd2944d7df">SVF::SVFGOPT::getActualINDef</a></div><div class="ttdeci">NodeID getActualINDef(NodeID ai) const</div><div class="ttdoc">Get def-site of actual-in/formal-out. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1654
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a550f93b640a6fd68773fbafd2944d7df"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a550f93b640a6fd68773fbafd2944d7df">SVF::SVFGOPT::getActualINDef</a></div><div class="ttdeci">NodeID getActualINDef(NodeID ai) const</div><div class="ttdoc">Get def-site of actual-in/formal-out. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00149">SVFGOPT.h:149</a></div></div>
|
|
1655
1655
|
<div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
|
|
1656
1656
|
<div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
|
|
1657
1657
|
</div><!-- fragment -->
|
|
@@ -1718,7 +1718,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1718
1718
|
<div class="ttc" id="classSVF_1_1SVFG_html_a7ace06b6c893b31f7dec2abe54e33e11"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">SVF::SVFG::getSVFGNode</a></div><div class="ttdeci">SVFGNode * getSVFGNode(NodeID id) const</div><div class="ttdoc">Get a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00150">SVFG.h:150</a></div></div>
|
|
1719
1719
|
<div class="ttc" id="namespaceSVF_html_a71d4e214e049f02bf26537cba6328673"><div class="ttname"><a href="namespaceSVF.html#a71d4e214e049f02bf26537cba6328673">SVF::PHISVFGNode</a></div><div class="ttdeci">PHIVFGNode PHISVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00056">SVFG.h:56</a></div></div>
|
|
1720
1720
|
<div class="ttc" id="classSVF_1_1SVFG_html_abd917826bf50ed409a307ce00562c97d"><div class="ttname"><a href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00350">SVFG.h:350</a></div></div>
|
|
1721
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a30a4165300d0b7ac9b31d9f9c496d943"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">SVF::SVFGOPT::addInterPHIOperands</a></div><div class="ttdeci">void addInterPHIOperands(PHISVFGNode *phi, const PAGNode *operand)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1721
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a30a4165300d0b7ac9b31d9f9c496d943"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">SVF::SVFGOPT::addInterPHIOperands</a></div><div class="ttdeci">void addInterPHIOperands(PHISVFGNode *phi, const PAGNode *operand)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00238">SVFGOPT.h:238</a></div></div>
|
|
1722
1722
|
<div class="ttc" id="classSVF_1_1VFG_html_aa01f63b17acdd52122a7f1ade329ccea"><div class="ttname"><a href="classSVF_1_1VFG.html#aa01f63b17acdd52122a7f1ade329ccea">SVF::VFG::addCallEdge</a></div><div class="ttdeci">VFGEdge * addCallEdge(NodeID srcId, NodeID dstId, CallSiteID csId)</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00564">VFG.cpp:564</a></div></div>
|
|
1723
1723
|
<div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
|
|
1724
1724
|
</div><!-- fragment -->
|
|
@@ -1774,9 +1774,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1774
1774
|
|
|
1775
1775
|
<p>Reimplemented from <a class="el" href="classSVF_1_1SVFG.html#a402dfe93b8692be453c4f76d048b690a">SVF::SVFG</a>.</p>
|
|
1776
1776
|
|
|
1777
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
1778
|
-
<div class="fragment"><div class="line"><a name="
|
|
1779
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a8d0b44ba9f3e6f9344a10d085d7be2b4"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a8d0b44ba9f3e6f9344a10d085d7be2b4">SVF::SVFGOPT::getFormalOUTDef</a></div><div class="ttdeci">NodeID getFormalOUTDef(NodeID fo) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1777
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00133">133</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
1778
|
+
<div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> intersection = formalOut->getPointsTo();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  intersection &= actualOut->getPointsTo();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span> (intersection.empty() == <span class="keyword">false</span>)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> foDef = <a class="code" href="classSVF_1_1SVFGOPT.html#a8d0b44ba9f3e6f9344a10d085d7be2b4">getFormalOUTDef</a>(formalOut->getId());</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1SVFGOPT.html#afa99da68ef756d968d39a85f0fac3649">addRetIndirectSVFGEdge</a>(foDef,actualOut->getId(),csId,intersection);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  edges.insert(edge);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
1779
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a8d0b44ba9f3e6f9344a10d085d7be2b4"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a8d0b44ba9f3e6f9344a10d085d7be2b4">SVF::SVFGOPT::getFormalOUTDef</a></div><div class="ttdeci">NodeID getFormalOUTDef(NodeID fo) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00155">SVFGOPT.h:155</a></div></div>
|
|
1780
1780
|
<div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
|
|
1781
1781
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_afa99da68ef756d968d39a85f0fac3649"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#afa99da68ef756d968d39a85f0fac3649">SVF::SVFGOPT::addRetIndirectSVFGEdge</a></div><div class="ttdeci">SVFGEdge * addRetIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS &cpts)</div><div class="ttdoc">Add indirect ret edge from src to dst with one call site ID. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00079">SVFGOPT.cpp:79</a></div></div>
|
|
1782
1782
|
<div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
|
|
@@ -1830,19 +1830,20 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1830
1830
|
</div><div class="memdoc">
|
|
1831
1831
|
|
|
1832
1832
|
<p>Connect formal-ret and actual ret. </p>
|
|
1833
|
-
<p>If a function does not have any return instruction. The def of a <a class="el" href="classSVF_1_1FormalRetVFGNode.html">FormalRetVFGNode</a> is itself (see <a class="el" href="VFG_8h.html">VFG.h</a>: addFormalRetVFGNode). Therefore, we do not connect return edge from a function without any return instruction. </p>
|
|
1833
|
+
<p>If a function does not have any return instruction. The def of a <a class="el" href="classSVF_1_1FormalRetVFGNode.html">FormalRetVFGNode</a> is itself (see <a class="el" href="VFG_8h.html">VFG.h</a>: addFormalRetVFGNode). Therefore, we do not connect return edge from a function without any return instruction (i.e., pag->isPhiNode(fun_ret)==false) because unique fun_ret PAGNode was not collected as a PhiNode in <a class="el" href="classSVF_1_1SVFIRBuilder.html#aca31431b70e2fb360caa1140e29c0c9d">SVFIRBuilder::visitReturnInst</a> </p>
|
|
1834
1834
|
|
|
1835
1835
|
<p>Reimplemented from <a class="el" href="classSVF_1_1VFG.html#ab4e8ab307ad6beb46812a60ebd31ae3b">SVF::VFG</a>.</p>
|
|
1836
1836
|
|
|
1837
1837
|
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00101">101</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
1838
|
-
<div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> phiId = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(cs_ret);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> retdef = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(fun_ret);</div><div class="line"><a name="
|
|
1838
|
+
<div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> phiId = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(cs_ret);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> retdef = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(fun_ret);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a5de67390d38bfacd5b63b776a0ecbfff">isPhiNode</a>(fun_ret)==<span class="keyword">false</span>)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1VFG.html#a27ac8d60de7be75e831b4a28f8f8f1d2">addRetEdge</a>(retdef, phiId, csId);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="namespaceSVF.html#a71d4e214e049f02bf26537cba6328673">PHISVFGNode</a>* phi = SVFUtil::cast<PHISVFGNode>(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(phiId));</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">addInterPHIOperands</a>(phi, fun_ret);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  edges.insert(edge);</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>  }</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
1839
1839
|
<div class="ttc" id="classSVF_1_1VFG_html_a27ac8d60de7be75e831b4a28f8f8f1d2"><div class="ttname"><a href="classSVF_1_1VFG.html#a27ac8d60de7be75e831b4a28f8f8f1d2">SVF::VFG::addRetEdge</a></div><div class="ttdeci">VFGEdge * addRetEdge(NodeID srcId, NodeID dstId, CallSiteID csId)</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00583">VFG.cpp:583</a></div></div>
|
|
1840
1840
|
<div class="ttc" id="classSVF_1_1SVFG_html_a7ace06b6c893b31f7dec2abe54e33e11"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">SVF::SVFG::getSVFGNode</a></div><div class="ttdeci">SVFGNode * getSVFGNode(NodeID id) const</div><div class="ttdoc">Get a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00150">SVFG.h:150</a></div></div>
|
|
1841
1841
|
<div class="ttc" id="namespaceSVF_html_a71d4e214e049f02bf26537cba6328673"><div class="ttname"><a href="namespaceSVF.html#a71d4e214e049f02bf26537cba6328673">SVF::PHISVFGNode</a></div><div class="ttdeci">PHIVFGNode PHISVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00056">SVFG.h:56</a></div></div>
|
|
1842
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a5de67390d38bfacd5b63b776a0ecbfff"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5de67390d38bfacd5b63b776a0ecbfff">SVF::SVFIR::isPhiNode</a></div><div class="ttdeci">bool isPhiNode(const SVFVar *node) const</div><div class="ttdoc">Whether this SVFVar is a result operand a of phi node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00210">SVFIR.h:210</a></div></div>
|
|
1843
|
+
<div class="ttc" id="classSVF_1_1VFG_html_a25c2bbbc2e966e2aaa59a5b83363557a"><div class="ttname"><a href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">SVF::VFG::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00104">VFG.h:104</a></div></div>
|
|
1842
1844
|
<div class="ttc" id="classSVF_1_1SVFG_html_abd917826bf50ed409a307ce00562c97d"><div class="ttname"><a href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00350">SVFG.h:350</a></div></div>
|
|
1843
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a30a4165300d0b7ac9b31d9f9c496d943"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">SVF::SVFGOPT::addInterPHIOperands</a></div><div class="ttdeci">void addInterPHIOperands(PHISVFGNode *phi, const PAGNode *operand)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1845
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a30a4165300d0b7ac9b31d9f9c496d943"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">SVF::SVFGOPT::addInterPHIOperands</a></div><div class="ttdeci">void addInterPHIOperands(PHISVFGNode *phi, const PAGNode *operand)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00238">SVFGOPT.h:238</a></div></div>
|
|
1844
1846
|
<div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
|
|
1845
|
-
<div class="ttc" id="classSVF_1_1VFG_html_ab7ba9d179504165f277d347a7cb9f5d8"><div class="ttname"><a href="classSVF_1_1VFG.html#ab7ba9d179504165f277d347a7cb9f5d8">SVF::VFG::getFormalRetVFGNode</a></div><div class="ttdeci">FormalRetVFGNode * getFormalRetVFGNode(const PAGNode *fret) const</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00253">VFG.h:253</a></div></div>
|
|
1846
1847
|
</div><!-- fragment -->
|
|
1847
1848
|
</div>
|
|
1848
1849
|
</div>
|
|
@@ -1872,8 +1873,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1872
1873
|
|
|
1873
1874
|
<p>Check if formal-in/formal-out reside in address-taken function. </p>
|
|
1874
1875
|
|
|
1875
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
1876
|
-
<div class="fragment"><div class="line"><a name="
|
|
1876
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00304">304</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
1877
|
+
<div class="fragment"><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">return</span> (fi->getFun()->getLLVMFun()->hasAddressTaken());</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  }</div></div><!-- fragment -->
|
|
1877
1878
|
</div>
|
|
1878
1879
|
</div>
|
|
1879
1880
|
<a id="a86cb63258b49077587d44ba45d023f02"></a>
|
|
@@ -1900,8 +1901,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1900
1901
|
</table>
|
|
1901
1902
|
</div><div class="memdoc">
|
|
1902
1903
|
|
|
1903
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
1904
|
-
<div class="fragment"><div class="line"><a name="
|
|
1904
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00308">308</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
1905
|
+
<div class="fragment"><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> (fo->getFun()->getLLVMFun()->hasAddressTaken());</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  }</div></div><!-- fragment -->
|
|
1905
1906
|
</div>
|
|
1906
1907
|
</div>
|
|
1907
1908
|
<a id="a550f93b640a6fd68773fbafd2944d7df"></a>
|
|
@@ -1930,9 +1931,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1930
1931
|
|
|
1931
1932
|
<p>Get def-site of actual-in/formal-out. </p>
|
|
1932
1933
|
|
|
1933
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
1934
|
-
<div class="fragment"><div class="line"><a name="
|
|
1935
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a9741514d915bf7f14787cc346b9d7c98"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">SVF::SVFGOPT::actualInToDefMap</a></div><div class="ttdeci">NodeIDToNodeIDMap actualInToDefMap</div><div class="ttdoc">map actual-in to its def-site node </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1934
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00149">149</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
1935
|
+
<div class="fragment"><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  NodeIDToNodeIDMap::const_iterator it = <a class="code" href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">actualInToDefMap</a>.find(ai);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != <a class="code" href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">actualInToDefMap</a>.end() && <span class="stringliteral">"can not find actual-in's def"</span>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
1936
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a9741514d915bf7f14787cc346b9d7c98"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">SVF::SVFGOPT::actualInToDefMap</a></div><div class="ttdeci">NodeIDToNodeIDMap actualInToDefMap</div><div class="ttdoc">map actual-in to its def-site node </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00349">SVFGOPT.h:349</a></div></div>
|
|
1936
1937
|
</div><!-- fragment -->
|
|
1937
1938
|
</div>
|
|
1938
1939
|
</div>
|
|
@@ -1960,9 +1961,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1960
1961
|
</table>
|
|
1961
1962
|
</div><div class="memdoc">
|
|
1962
1963
|
|
|
1963
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
1964
|
-
<div class="fragment"><div class="line"><a name="
|
|
1965
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_abbd6ac28826b9cc4c4981271393c8b19"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">SVF::SVFGOPT::formalOutToDefMap</a></div><div class="ttdeci">NodeIDToNodeIDMap formalOutToDefMap</div><div class="ttdoc">map formal-out to its def-site node </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
1964
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00155">155</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
1965
|
+
<div class="fragment"><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  NodeIDToNodeIDMap::const_iterator it = <a class="code" href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">formalOutToDefMap</a>.find(fo);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != <a class="code" href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">formalOutToDefMap</a>.end() && <span class="stringliteral">"can not find formal-out's def"</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
1966
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_abbd6ac28826b9cc4c4981271393c8b19"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">SVF::SVFGOPT::formalOutToDefMap</a></div><div class="ttdeci">NodeIDToNodeIDMap formalOutToDefMap</div><div class="ttdoc">map formal-out to its def-site node </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00350">SVFGOPT.h:350</a></div></div>
|
|
1966
1967
|
</div><!-- fragment -->
|
|
1967
1968
|
</div>
|
|
1968
1969
|
</div>
|
|
@@ -1999,14 +2000,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1999
2000
|
|
|
2000
2001
|
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8cpp_source.html#l00090">90</a> of file <a class="el" href="SVFGOPT_8cpp_source.html">SVFGOPT.cpp</a>.</p>
|
|
2001
2002
|
<div class="fragment"><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a07874e1a77bcd5ff593757d202a4edd6">SVFGNodeSet</a> candidates;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">for</span> (SVFGNodeIDToNodeMapTy::iterator it = <a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVFG::begin</a>(), eit = <a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVFG::end</a>();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  it!=eit; ++it)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = it->second;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">if</span> (SVFUtil::isa<ActualParmSVFGNode>(node) || SVFUtil::isa<ActualRetSVFGNode>(node)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  || SVFUtil::isa<FormalParmSVFGNode>(node) || SVFUtil::isa<FormalRetSVFGNode>(node)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  || SVFUtil::isa<ActualINSVFGNode>(node) || SVFUtil::isa<ActualOUTSVFGNode>(node)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  || SVFUtil::isa<FormalINSVFGNode>(node) || SVFUtil::isa<FormalOUTSVFGNode>(node))</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  candidates.insert(node);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a07874e1a77bcd5ff593757d202a4edd6">SVFGNodeSet</a> nodesToBeDeleted;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">for</span> (SVFGNodeSet::const_iterator it = candidates.begin(), eit = candidates.end();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  it!=eit; ++it)</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>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = *it;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmSVFGNode</a>* fp = SVFUtil::dyn_cast<FormalParmSVFGNode>(node))</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a1fd6d26203d7d574b5664b8fcae54c1a">replaceFParamARetWithPHI</a>(<a class="code" href="classSVF_1_1SVFGOPT.html#a374a31b9500ceda00477b03e9702d0a8">addInterPHIForFP</a>(fp), fp);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  nodesToBeDeleted.insert(fp);</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetSVFGNode</a>* ar = SVFUtil::dyn_cast<ActualRetSVFGNode>(node))</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a1fd6d26203d7d574b5664b8fcae54c1a">replaceFParamARetWithPHI</a>(<a class="code" href="classSVF_1_1SVFGOPT.html#ad4203fa8afbf0c0a5d6775be937c6e1d">addInterPHIForAR</a>(ar), ar);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  nodesToBeDeleted.insert(ar);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualParmSVFGNode>(node) || SVFUtil::isa<FormalRetSVFGNode>(node))</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  nodesToBeDeleted.insert(node);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualINSVFGNode>(node) || SVFUtil::isa<FormalOUTSVFGNode>(node))</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#abefe3efa0232106f1843351ff6dd1063">retargetEdgesOfAInFOut</a>(node);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  nodesToBeDeleted.insert(node);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualOUTSVFGNode>(node) || SVFUtil::isa<FormalINSVFGNode>(node))</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>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">keepActualOutFormalIn</a> == <span class="keyword">false</span>)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  nodesToBeDeleted.insert(node);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">for</span> (SVFGNodeSet::iterator it = nodesToBeDeleted.begin(), eit = nodesToBeDeleted.end(); it != eit; ++it)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = *it;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGOPT.html#ab72ce28409a440bbf5b84a68e5f82b85">canBeRemoved</a>(node))</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">if</span> (SVFUtil::isa<ActualOUTSVFGNode>(node) || SVFUtil::isa<FormalINSVFGNode>(node))</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a2285d20f7c4d128a8ede2e7f4f41f798">retargetEdgesOfAOutFIn</a>(node); </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">removeAllEdges</a>(node);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classSVF_1_1SVFG.html#a700c5fc6c1cb4136e55196fe3d393b8b">removeSVFGNode</a>(node);</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>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00361">GenericGraph.h:361</a></div></div>
|
|
2002
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ad4203fa8afbf0c0a5d6775be937c6e1d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ad4203fa8afbf0c0a5d6775be937c6e1d">SVF::SVFGOPT::addInterPHIForAR</a></div><div class="ttdeci">InterPHISVFGNode * addInterPHIForAR(const ActualRetSVFGNode *ar)</div><div class="ttdoc">Add inter PHI SVFG node for actual return. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2003
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a374a31b9500ceda00477b03e9702d0a8"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a374a31b9500ceda00477b03e9702d0a8">SVF::SVFGOPT::addInterPHIForFP</a></div><div class="ttdeci">InterPHISVFGNode * addInterPHIForFP(const FormalParmSVFGNode *fp)</div><div class="ttdoc">Add inter PHI SVFG node for formal parameter. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2003
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ad4203fa8afbf0c0a5d6775be937c6e1d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ad4203fa8afbf0c0a5d6775be937c6e1d">SVF::SVFGOPT::addInterPHIForAR</a></div><div class="ttdeci">InterPHISVFGNode * addInterPHIForAR(const ActualRetSVFGNode *ar)</div><div class="ttdoc">Add inter PHI SVFG node for actual return. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00252">SVFGOPT.h:252</a></div></div>
|
|
2004
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a374a31b9500ceda00477b03e9702d0a8"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a374a31b9500ceda00477b03e9702d0a8">SVF::SVFGOPT::addInterPHIForFP</a></div><div class="ttdeci">InterPHISVFGNode * addInterPHIForFP(const FormalParmSVFGNode *fp)</div><div class="ttdoc">Add inter PHI SVFG node for formal parameter. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00244">SVFGOPT.h:244</a></div></div>
|
|
2004
2005
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a1fd6d26203d7d574b5664b8fcae54c1a"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a1fd6d26203d7d574b5664b8fcae54c1a">SVF::SVFGOPT::replaceFParamARetWithPHI</a></div><div class="ttdeci">void replaceFParamARetWithPHI(PHISVFGNode *phi, SVFGNode *svfgNode)</div><div class="ttdoc">Replace FormalParam/ActualRet node with PHI node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00152">SVFGOPT.cpp:152</a></div></div>
|
|
2005
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a7e57ca56a587a5b59543b5bab7fe794d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">SVF::SVFGOPT::keepActualOutFormalIn</a></div><div class="ttdeci">bool keepActualOutFormalIn</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2006
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a7e57ca56a587a5b59543b5bab7fe794d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">SVF::SVFGOPT::keepActualOutFormalIn</a></div><div class="ttdeci">bool keepActualOutFormalIn</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00355">SVFGOPT.h:355</a></div></div>
|
|
2006
2007
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
2007
2008
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a07874e1a77bcd5ff593757d202a4edd6"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a07874e1a77bcd5ff593757d202a4edd6">SVF::SVFGOPT::SVFGNodeSet</a></div><div class="ttdeci">Set< SVFGNode * > SVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00058">SVFGOPT.h:58</a></div></div>
|
|
2008
2009
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ab72ce28409a440bbf5b84a68e5f82b85"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ab72ce28409a440bbf5b84a68e5f82b85">SVF::SVFGOPT::canBeRemoved</a></div><div class="ttdeci">bool canBeRemoved(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00335">SVFGOPT.cpp:335</a></div></div>
|
|
2009
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac15b3c2cb127b17ebad3a30fc04b6f40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">SVF::SVFGOPT::removeAllEdges</a></div><div class="ttdeci">void removeAllEdges(const SVFGNode *node)</div><div class="ttdoc">Remove edges of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2010
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac15b3c2cb127b17ebad3a30fc04b6f40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">SVF::SVFGOPT::removeAllEdges</a></div><div class="ttdeci">void removeAllEdges(const SVFGNode *node)</div><div class="ttdoc">Remove edges of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00330">SVFGOPT.h:330</a></div></div>
|
|
2010
2011
|
<div class="ttc" id="classSVF_1_1ActualRetVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualRetVFGNode.html">SVF::ActualRetVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00948">VFGNode.h:948</a></div></div>
|
|
2011
2012
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a2285d20f7c4d128a8ede2e7f4f41f798"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a2285d20f7c4d128a8ede2e7f4f41f798">SVF::SVFGOPT::retargetEdgesOfAOutFIn</a></div><div class="ttdeci">void retargetEdgesOfAOutFIn(SVFGNode *node)</div><div class="ttdoc">Connect actual-out/formal-in&#39;s predecessors to their successors directly. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00251">SVFGOPT.cpp:251</a></div></div>
|
|
2012
2013
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_abefe3efa0232106f1843351ff6dd1063"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abefe3efa0232106f1843351ff6dd1063">SVF::SVFGOPT::retargetEdgesOfAInFOut</a></div><div class="ttdeci">void retargetEdgesOfAInFOut(SVFGNode *node)</div><div class="ttdoc">Retarget edges related to actual-in/-out and formal-in/-out. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00205">SVFGOPT.cpp:205</a></div></div>
|
|
@@ -2048,18 +2049,18 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2048
2049
|
<p>remove this node if it has no edges </p>
|
|
2049
2050
|
|
|
2050
2051
|
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8cpp_source.html#l00393">393</a> of file <a class="el" href="SVFGOPT_8cpp_source.html">SVFGOPT.cpp</a>.</p>
|
|
2051
|
-
<div class="fragment"><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#ac3b14bf191cadb832e3a34affd7e569d">parseSelfCycleHandleOption</a>();</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#ae825e01893d3304379f72380d314f09c">initialWorkList</a>();</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">while</span> (!<a class="code" href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAPHISVFGNode.html">MSSAPHISVFGNode</a>* node = <a class="code" href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGOPT.html#afb068fd46dfbf993decd7d6c8ca2c9ba">checkSelfCycleEdges</a>(node))</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordflow">if</span> (node-><a class="code" href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">hasOutgoingEdge</a>() && node-><a class="code" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">hasIncomingEdge</a>())</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a4f3890f637ffe03c2a1981e75e3d2e16">bypassMSSAPHINode</a>(node);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">if</span> (node-><a class="code" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">hasIncomingEdge</a>() && node-><a class="code" href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">hasOutgoingEdge</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> edgeIt = node-><a class="code" href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">InEdgeBegin</a>();</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> edgeEit = node-><a class="code" href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">InEdgeEnd</a>();</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">addIntoWorklist</a>((*edgeIt)->getSrcNode());</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a5a2fe12411de408dfb57e910e413957f">removeInEdges</a>(node);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (node-><a class="code" href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">hasOutgoingEdge</a>() && node-><a class="code" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">hasIncomingEdge</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> edgeIt = node-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>();</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> edgeEit = node-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>();</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">addIntoWorklist</a>((*edgeIt)->getDstNode());</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#ae85391a5f0828362c61d55e162eef04d">removeOutEdges</a>(node);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keywordflow">if</span> (node-><a class="code" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">hasIncomingEdge</a>() == <span class="keyword">false</span> && node-><a class="code" href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">hasOutgoingEdge</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <a class="code" href="classSVF_1_1SVFG.html#a700c5fc6c1cb4136e55196fe3d393b8b">removeSVFGNode</a>(const_cast<MSSAPHISVFGNode*>(node));</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_ae85391a5f0828362c61d55e162eef04d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ae85391a5f0828362c61d55e162eef04d">SVF::SVFGOPT::removeOutEdges</a></div><div class="ttdeci">void removeOutEdges(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2052
|
+
<div class="fragment"><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#ac3b14bf191cadb832e3a34affd7e569d">parseSelfCycleHandleOption</a>();</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#ae825e01893d3304379f72380d314f09c">initialWorkList</a>();</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">while</span> (!<a class="code" href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAPHISVFGNode.html">MSSAPHISVFGNode</a>* node = <a class="code" href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGOPT.html#afb068fd46dfbf993decd7d6c8ca2c9ba">checkSelfCycleEdges</a>(node))</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordflow">if</span> (node-><a class="code" href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">hasOutgoingEdge</a>() && node-><a class="code" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">hasIncomingEdge</a>())</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a4f3890f637ffe03c2a1981e75e3d2e16">bypassMSSAPHINode</a>(node);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">if</span> (node-><a class="code" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">hasIncomingEdge</a>() && node-><a class="code" href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">hasOutgoingEdge</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> edgeIt = node-><a class="code" href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">InEdgeBegin</a>();</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> edgeEit = node-><a class="code" href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">InEdgeEnd</a>();</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">addIntoWorklist</a>((*edgeIt)->getSrcNode());</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a5a2fe12411de408dfb57e910e413957f">removeInEdges</a>(node);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (node-><a class="code" href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">hasOutgoingEdge</a>() && node-><a class="code" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">hasIncomingEdge</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> edgeIt = node-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>();</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> edgeEit = node-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>();</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">addIntoWorklist</a>((*edgeIt)->getDstNode());</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#ae85391a5f0828362c61d55e162eef04d">removeOutEdges</a>(node);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keywordflow">if</span> (node-><a class="code" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">hasIncomingEdge</a>() == <span class="keyword">false</span> && node-><a class="code" href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">hasOutgoingEdge</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <a class="code" href="classSVF_1_1SVFG.html#a700c5fc6c1cb4136e55196fe3d393b8b">removeSVFGNode</a>(const_cast<MSSAPHISVFGNode*>(node));</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_ae85391a5f0828362c61d55e162eef04d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ae85391a5f0828362c61d55e162eef04d">SVF::SVFGOPT::removeOutEdges</a></div><div class="ttdeci">void removeOutEdges(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00341">SVFGOPT.h:341</a></div></div>
|
|
2052
2053
|
<div class="ttc" id="classSVF_1_1GenericNode_html_a06a7373b11143e709784de784fa476fe"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">SVF::GenericNode::hasIncomingEdge</a></div><div class="ttdeci">bool hasIncomingEdge() const</div><div class="ttdoc">Has incoming/outgoing edge set. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00190">GenericGraph.h:190</a></div></div>
|
|
2053
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a5a2fe12411de408dfb57e910e413957f"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a5a2fe12411de408dfb57e910e413957f">SVF::SVFGOPT::removeInEdges</a></div><div class="ttdeci">void removeInEdges(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2054
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a5a2fe12411de408dfb57e910e413957f"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a5a2fe12411de408dfb57e910e413957f">SVF::SVFGOPT::removeInEdges</a></div><div class="ttdeci">void removeInEdges(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00335">SVFGOPT.h:335</a></div></div>
|
|
2054
2055
|
<div class="ttc" id="classSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00202">GenericGraph.h:202</a></div></div>
|
|
2055
2056
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
|
|
2056
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a72c573ecbc12c44e6ce1d67527f888a8"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">SVF::SVFGOPT::addIntoWorklist</a></div><div class="ttdeci">bool addIntoWorklist(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2057
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a925f39665e13b18dfe66c2dded44c194"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">SVF::SVFGOPT::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">storing MSSAPHI nodes which may be removed. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2057
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a72c573ecbc12c44e6ce1d67527f888a8"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">SVF::SVFGOPT::addIntoWorklist</a></div><div class="ttdeci">bool addIntoWorklist(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00211">SVFGOPT.h:211</a></div></div>
|
|
2058
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a925f39665e13b18dfe66c2dded44c194"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">SVF::SVFGOPT::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">storing MSSAPHI nodes which may be removed. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00353">SVFGOPT.h:353</a></div></div>
|
|
2058
2059
|
<div class="ttc" id="classSVF_1_1GenericNode_html_a0931220d7a38e03f206cbdc6465d32ad"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">SVF::GenericNode::hasOutgoingEdge</a></div><div class="ttdeci">bool hasOutgoingEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00194">GenericGraph.h:194</a></div></div>
|
|
2059
2060
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ae5b113921530eee6afe58a65d8e5b3a7"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">SVF::GenericNode::InEdgeBegin</a></div><div class="ttdeci">iterator InEdgeBegin()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00210">GenericGraph.h:210</a></div></div>
|
|
2060
2061
|
<div class="ttc" id="classSVF_1_1MSSAPHISVFGNode_html"><div class="ttname"><a href="classSVF_1_1MSSAPHISVFGNode.html">SVF::MSSAPHISVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00273">SVFGNode.h:273</a></div></div>
|
|
2061
2062
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_afb068fd46dfbf993decd7d6c8ca2c9ba"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#afb068fd46dfbf993decd7d6c8ca2c9ba">SVF::SVFGOPT::checkSelfCycleEdges</a></div><div class="ttdeci">bool checkSelfCycleEdges(const MSSAPHISVFGNode *node)</div><div class="ttdoc">Remove self cycle edges if needed. Return TRUE if some self cycle edges remained. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00444">SVFGOPT.cpp:444</a></div></div>
|
|
2062
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ae825e01893d3304379f72380d314f09c"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ae825e01893d3304379f72380d314f09c">SVF::SVFGOPT::initialWorkList</a></div><div class="ttdeci">void initialWorkList()</div><div class="ttdoc">Initial work list with MSSAPHI nodes which may be removed. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2063
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ae825e01893d3304379f72380d314f09c"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ae825e01893d3304379f72380d314f09c">SVF::SVFGOPT::initialWorkList</a></div><div class="ttdeci">void initialWorkList()</div><div class="ttdoc">Initial work list with MSSAPHI nodes which may be removed. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00202">SVFGOPT.h:202</a></div></div>
|
|
2063
2064
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a4f3890f637ffe03c2a1981e75e3d2e16"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a4f3890f637ffe03c2a1981e75e3d2e16">SVF::SVFGOPT::bypassMSSAPHINode</a></div><div class="ttdeci">void bypassMSSAPHINode(const MSSAPHISVFGNode *node)</div><div class="ttdoc">Remove MSSAPHI node if possible. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00482">SVFGOPT.cpp:482</a></div></div>
|
|
2064
2065
|
<div class="ttc" id="classSVF_1_1GenericNode_html_afe6a7b286d9af4992f41b59612fd2900"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">SVF::GenericNode::InEdgeEnd</a></div><div class="ttdeci">iterator InEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00214">GenericGraph.h:214</a></div></div>
|
|
2065
2066
|
<div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
|
|
@@ -2095,10 +2096,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2095
2096
|
|
|
2096
2097
|
<p>Initial work list with <a class="el" href="classSVF_1_1MSSAPHI.html">MSSAPHI</a> nodes which may be removed. </p>
|
|
2097
2098
|
|
|
2098
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2099
|
-
<div class="fragment"><div class="line"><a name="
|
|
2099
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00202">202</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2100
|
+
<div class="fragment"><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">for</span> (<a class="code" href="classSVF_1_1VFG.html#a225a91c04afac6a8fe198e9860890a52">SVFG::const_iterator</a> it = <a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = <a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">addIntoWorklist</a>(it->second);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00361">GenericGraph.h:361</a></div></div>
|
|
2100
2101
|
<div class="ttc" id="classSVF_1_1VFG_html_a225a91c04afac6a8fe198e9860890a52"><div class="ttname"><a href="classSVF_1_1VFG.html#a225a91c04afac6a8fe198e9860890a52">SVF::VFG::const_iterator</a></div><div class="ttdeci">VFGNodeIDToNodeMapTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00081">VFG.h:81</a></div></div>
|
|
2101
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a72c573ecbc12c44e6ce1d67527f888a8"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">SVF::SVFGOPT::addIntoWorklist</a></div><div class="ttdeci">bool addIntoWorklist(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2102
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a72c573ecbc12c44e6ce1d67527f888a8"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">SVF::SVFGOPT::addIntoWorklist</a></div><div class="ttdeci">bool addIntoWorklist(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00211">SVFGOPT.h:211</a></div></div>
|
|
2102
2103
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
2103
2104
|
</div><!-- fragment -->
|
|
2104
2105
|
</div>
|
|
@@ -2162,8 +2163,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2162
2163
|
</table>
|
|
2163
2164
|
</div><div class="memdoc">
|
|
2164
2165
|
|
|
2165
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2166
|
-
<div class="fragment"><div class="line"><a name="
|
|
2166
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00285">285</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2167
|
+
<div class="fragment"><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">defNodes</a>.test(node->getId());</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_abd524dca72261bbcc7ebb1103b693a2b"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">SVF::SVFGOPT::defNodes</a></div><div class="ttdeci">NodeBS defNodes</div><div class="ttdoc">preserved def nodes of formal-in/actual-out </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00351">SVFGOPT.h:351</a></div></div>
|
|
2167
2168
|
</div><!-- fragment -->
|
|
2168
2169
|
</div>
|
|
2169
2170
|
</div>
|
|
@@ -2191,10 +2192,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2191
2192
|
</div><div class="memdoc">
|
|
2192
2193
|
|
|
2193
2194
|
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8cpp_source.html#l00374">374</a> of file <a class="el" href="SVFGOPT_8cpp_source.html">SVFGOPT.cpp</a>.</p>
|
|
2194
|
-
<div class="fragment"><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>  std::string choice = (<a class="code" href="classSVF_1_1Options.html#a3ed96242ac56a05d057ebd11b23cf053">Options::SelfCycle</a>.getValue().empty()) ? <span class="stringliteral">""</span> : <a class="code" href="classSVF_1_1Options.html#a3ed96242ac56a05d057ebd11b23cf053">Options::SelfCycle</a>.getValue();</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordflow">if</span> (choice.empty() || choice == <a class="code" href="SVFGOPT_8cpp.html#af213fe89264a55a8ff44872905524f2f">KeepAllSelfCycle</a>)</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (choice == <a class="code" href="SVFGOPT_8cpp.html#a88c73f6d9c8ac75497c2e520a7d41935">KeepContextSelfCycle</a>)</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (choice == <a class="code" href="SVFGOPT_8cpp.html#a644ce2ce8b3224e9cd4cfc8480941c6f">KeepNoneSelfCycle</a>)</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a> = <a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVFUtil::writeWrnMsg</a>(<span class="stringliteral">"Unrecognised option. All self cycle edges will be kept."</span>);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a> = <span class="keyword">true</span>;</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> }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_a65bba62d9b62bf2bdbbda69540eeb38d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">SVF::SVFGOPT::keepAllSelfCycle</a></div><div class="ttdeci">bool keepAllSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2195
|
+
<div class="fragment"><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>  std::string choice = (<a class="code" href="classSVF_1_1Options.html#a3ed96242ac56a05d057ebd11b23cf053">Options::SelfCycle</a>.getValue().empty()) ? <span class="stringliteral">""</span> : <a class="code" href="classSVF_1_1Options.html#a3ed96242ac56a05d057ebd11b23cf053">Options::SelfCycle</a>.getValue();</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordflow">if</span> (choice.empty() || choice == <a class="code" href="SVFGOPT_8cpp.html#af213fe89264a55a8ff44872905524f2f">KeepAllSelfCycle</a>)</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (choice == <a class="code" href="SVFGOPT_8cpp.html#a88c73f6d9c8ac75497c2e520a7d41935">KeepContextSelfCycle</a>)</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (choice == <a class="code" href="SVFGOPT_8cpp.html#a644ce2ce8b3224e9cd4cfc8480941c6f">KeepNoneSelfCycle</a>)</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a> = <a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVFUtil::writeWrnMsg</a>(<span class="stringliteral">"Unrecognised option. All self cycle edges will be kept."</span>);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a> = <span class="keyword">true</span>;</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> }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_a65bba62d9b62bf2bdbbda69540eeb38d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">SVF::SVFGOPT::keepAllSelfCycle</a></div><div class="ttdeci">bool keepAllSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00356">SVFGOPT.h:356</a></div></div>
|
|
2195
2196
|
<div class="ttc" id="classSVF_1_1Options_html_a3ed96242ac56a05d057ebd11b23cf053"><div class="ttname"><a href="classSVF_1_1Options.html#a3ed96242ac56a05d057ebd11b23cf053">SVF::Options::SelfCycle</a></div><div class="ttdeci">static const llvm::cl::opt< std::string > SelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00118">Options.h:118</a></div></div>
|
|
2196
2197
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00069">SVFUtil.cpp:69</a></div></div>
|
|
2197
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac68a53c567929ba8b69c00e3e8d9d30f"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">SVF::SVFGOPT::keepContextSelfCycle</a></div><div class="ttdeci">bool keepContextSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2198
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac68a53c567929ba8b69c00e3e8d9d30f"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">SVF::SVFGOPT::keepContextSelfCycle</a></div><div class="ttdeci">bool keepContextSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00357">SVFGOPT.h:357</a></div></div>
|
|
2198
2199
|
<div class="ttc" id="SVFGOPT_8cpp_html_af213fe89264a55a8ff44872905524f2f"><div class="ttname"><a href="SVFGOPT_8cpp.html#af213fe89264a55a8ff44872905524f2f">KeepAllSelfCycle</a></div><div class="ttdeci">static std::string KeepAllSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00042">SVFGOPT.cpp:42</a></div></div>
|
|
2199
2200
|
<div class="ttc" id="SVFGOPT_8cpp_html_a644ce2ce8b3224e9cd4cfc8480941c6f"><div class="ttname"><a href="SVFGOPT_8cpp.html#a644ce2ce8b3224e9cd4cfc8480941c6f">KeepNoneSelfCycle</a></div><div class="ttdeci">static std::string KeepNoneSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00044">SVFGOPT.cpp:44</a></div></div>
|
|
2200
2201
|
<div class="ttc" id="SVFGOPT_8cpp_html_a88c73f6d9c8ac75497c2e520a7d41935"><div class="ttname"><a href="SVFGOPT_8cpp.html#a88c73f6d9c8ac75497c2e520a7d41935">KeepContextSelfCycle</a></div><div class="ttdeci">static std::string KeepContextSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00043">SVFGOPT.cpp:43</a></div></div>
|
|
@@ -2227,9 +2228,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2227
2228
|
|
|
2228
2229
|
<p>Remove edges of a <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node. </p>
|
|
2229
2230
|
|
|
2230
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2231
|
-
<div class="fragment"><div class="line"><a name="
|
|
2232
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a5a2fe12411de408dfb57e910e413957f"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a5a2fe12411de408dfb57e910e413957f">SVF::SVFGOPT::removeInEdges</a></div><div class="ttdeci">void removeInEdges(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2231
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00330">330</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2232
|
+
<div class="fragment"><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  {</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a5a2fe12411de408dfb57e910e413957f">removeInEdges</a>(node);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#ae85391a5f0828362c61d55e162eef04d">removeOutEdges</a>(node);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_ae85391a5f0828362c61d55e162eef04d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ae85391a5f0828362c61d55e162eef04d">SVF::SVFGOPT::removeOutEdges</a></div><div class="ttdeci">void removeOutEdges(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00341">SVFGOPT.h:341</a></div></div>
|
|
2233
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a5a2fe12411de408dfb57e910e413957f"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a5a2fe12411de408dfb57e910e413957f">SVF::SVFGOPT::removeInEdges</a></div><div class="ttdeci">void removeInEdges(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00335">SVFGOPT.h:335</a></div></div>
|
|
2233
2234
|
</div><!-- fragment -->
|
|
2234
2235
|
</div>
|
|
2235
2236
|
</div>
|
|
@@ -2258,8 +2259,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2258
2259
|
</div><div class="memdoc">
|
|
2259
2260
|
<p>remove incoming edges </p>
|
|
2260
2261
|
|
|
2261
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2262
|
-
<div class="fragment"><div class="line"><a name="
|
|
2262
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00335">335</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2263
|
+
<div class="fragment"><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="keywordflow">while</span> (node->hasIncomingEdge())</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">removeSVFGEdge</a>(*(node->InEdgeBegin()));</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div><div class="ttc" id="classSVF_1_1SVFG_html_a931d8b82e10a54d68c68cf6bd80264be"><div class="ttname"><a href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">SVF::SVFG::removeSVFGEdge</a></div><div class="ttdeci">void removeSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00237">SVFG.h:237</a></div></div>
|
|
2263
2264
|
</div><!-- fragment -->
|
|
2264
2265
|
</div>
|
|
2265
2266
|
</div>
|
|
@@ -2287,8 +2288,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2287
2288
|
</table>
|
|
2288
2289
|
</div><div class="memdoc">
|
|
2289
2290
|
|
|
2290
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2291
|
-
<div class="fragment"><div class="line"><a name="
|
|
2291
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00341">341</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2292
|
+
<div class="fragment"><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">while</span> (node->hasOutgoingEdge())</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <a class="code" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">removeSVFGEdge</a>(*(node->OutEdgeBegin()));</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  }</div><div class="ttc" id="classSVF_1_1SVFG_html_a931d8b82e10a54d68c68cf6bd80264be"><div class="ttname"><a href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">SVF::SVFG::removeSVFGEdge</a></div><div class="ttdeci">void removeSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00237">SVFG.h:237</a></div></div>
|
|
2292
2293
|
</div><!-- fragment -->
|
|
2293
2294
|
</div>
|
|
2294
2295
|
</div>
|
|
@@ -2348,11 +2349,11 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2348
2349
|
<div class="ttc" id="classSVF_1_1VFG_html_a3c97d77bc0348471d6c098d5655f15b2"><div class="ttname"><a href="classSVF_1_1VFG.html#a3c97d77bc0348471d6c098d5655f15b2">SVF::VFG::addIntraDirectVFEdge</a></div><div class="ttdeci">VFGEdge * addIntraDirectVFEdge(NodeID srcId, NodeID dstId)</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00540">VFG.cpp:540</a></div></div>
|
|
2349
2350
|
<div class="ttc" id="classSVF_1_1VFG_html_a9bc8e7ee74b652ed7708e95c16a63728"><div class="ttname"><a href="classSVF_1_1VFG.html#a9bc8e7ee74b652ed7708e95c16a63728">SVF::VFG::getCallSiteID</a></div><div class="ttdeci">CallSiteID getCallSiteID(const CallBlockNode *cs, const SVFFunction *func) const</div><div class="ttdoc">Get callsite given a callsiteID. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00178">VFG.h:178</a></div></div>
|
|
2350
2351
|
<div class="ttc" id="classSVF_1_1FormalRetVFGNode_html_a62a894e71fcf7a3db19c0488d96a7262"><div class="ttname"><a href="classSVF_1_1FormalRetVFGNode.html#a62a894e71fcf7a3db19c0488d96a7262">SVF::FormalRetVFGNode::getRet</a></div><div class="ttdeci">const PAGNode * getRet() const</div><div class="ttdoc">Return value at callee. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l01019">VFGNode.h:1019</a></div></div>
|
|
2351
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac15b3c2cb127b17ebad3a30fc04b6f40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">SVF::SVFGOPT::removeAllEdges</a></div><div class="ttdeci">void removeAllEdges(const SVFGNode *node)</div><div class="ttdoc">Remove edges of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2352
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac15b3c2cb127b17ebad3a30fc04b6f40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">SVF::SVFGOPT::removeAllEdges</a></div><div class="ttdeci">void removeAllEdges(const SVFGNode *node)</div><div class="ttdoc">Remove edges of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00330">SVFGOPT.h:330</a></div></div>
|
|
2352
2353
|
<div class="ttc" id="classSVF_1_1ActualRetVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualRetVFGNode.html">SVF::ActualRetVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00948">VFGNode.h:948</a></div></div>
|
|
2353
2354
|
<div class="ttc" id="classSVF_1_1SVFG_html_abd917826bf50ed409a307ce00562c97d"><div class="ttname"><a href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00350">SVFG.h:350</a></div></div>
|
|
2354
2355
|
<div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
|
|
2355
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a30a4165300d0b7ac9b31d9f9c496d943"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">SVF::SVFGOPT::addInterPHIOperands</a></div><div class="ttdeci">void addInterPHIOperands(PHISVFGNode *phi, const PAGNode *operand)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2356
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a30a4165300d0b7ac9b31d9f9c496d943"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">SVF::SVFGOPT::addInterPHIOperands</a></div><div class="ttdeci">void addInterPHIOperands(PHISVFGNode *phi, const PAGNode *operand)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00238">SVFGOPT.h:238</a></div></div>
|
|
2356
2357
|
<div class="ttc" id="classSVF_1_1VFG_html_aa01f63b17acdd52122a7f1ade329ccea"><div class="ttname"><a href="classSVF_1_1VFG.html#aa01f63b17acdd52122a7f1ade329ccea">SVF::VFG::addCallEdge</a></div><div class="ttdeci">VFGEdge * addCallEdge(NodeID srcId, NodeID dstId, CallSiteID csId)</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00564">VFG.cpp:564</a></div></div>
|
|
2357
2358
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00165">GenericGraph.h:165</a></div></div>
|
|
2358
2359
|
<div class="ttc" id="classSVF_1_1FormalRetVFGNode_html_a68d9c5d58e2282b2891c93203233fd93"><div class="ttname"><a href="classSVF_1_1FormalRetVFGNode.html#a68d9c5d58e2282b2891c93203233fd93">SVF::FormalRetVFGNode::getFun</a></div><div class="ttdeci">const SVFFunction * getFun() const override</div><div class="ttdoc">Function. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l01024">VFGNode.h:1024</a></div></div>
|
|
@@ -2399,8 +2400,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2399
2400
|
</table>
|
|
2400
2401
|
</div><div class="memdoc">
|
|
2401
2402
|
|
|
2402
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2403
|
-
<div class="fragment"><div class="line"><a name="
|
|
2403
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00260">260</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2404
|
+
<div class="fragment"><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  PAGNodeToDefMapTy::iterator it = <a class="code" href="classSVF_1_1VFG.html#ac89b3917ed73ac70aac6205af8f7a4fe">PAGNodeToDefMap</a>.find(pagNode);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != <a class="code" href="classSVF_1_1VFG.html#ac89b3917ed73ac70aac6205af8f7a4fe">PAGNodeToDefMap</a>.end() && <span class="stringliteral">"a SVFIR node doesn't have definition before"</span>);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <a class="code" href="classSVF_1_1VFG.html#ac89b3917ed73ac70aac6205af8f7a4fe">PAGNodeToDefMap</a>[pagNode] = node->getId();</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
2404
2405
|
<div class="ttc" id="classSVF_1_1VFG_html_ac89b3917ed73ac70aac6205af8f7a4fe"><div class="ttname"><a href="classSVF_1_1VFG.html#ac89b3917ed73ac70aac6205af8f7a4fe">SVF::VFG::PAGNodeToDefMap</a></div><div class="ttdeci">PAGNodeToDefMapTy PAGNodeToDefMap</div><div class="ttdoc">map a pag node to its definition SVG node </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00089">VFG.h:89</a></div></div>
|
|
2405
2406
|
</div><!-- fragment -->
|
|
2406
2407
|
</div>
|
|
@@ -2443,10 +2444,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2443
2444
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
|
|
2444
2445
|
<div class="ttc" id="classSVF_1_1GenericNode_html_afe6a7b286d9af4992f41b59612fd2900"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">SVF::GenericNode::InEdgeEnd</a></div><div class="ttdeci">iterator InEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00214">GenericGraph.h:214</a></div></div>
|
|
2445
2446
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00085">GenericGraph.h:85</a></div></div>
|
|
2446
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac15b3c2cb127b17ebad3a30fc04b6f40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">SVF::SVFGOPT::removeAllEdges</a></div><div class="ttdeci">void removeAllEdges(const SVFGNode *node)</div><div class="ttdoc">Remove edges of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2447
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a490695ab536cd455c531fbdc57499cac"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a490695ab536cd455c531fbdc57499cac">SVF::SVFGOPT::setActualINDef</a></div><div class="ttdeci">void setActualINDef(NodeID ai, NodeID def)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2447
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac15b3c2cb127b17ebad3a30fc04b6f40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">SVF::SVFGOPT::removeAllEdges</a></div><div class="ttdeci">void removeAllEdges(const SVFGNode *node)</div><div class="ttdoc">Remove edges of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00330">SVFGOPT.h:330</a></div></div>
|
|
2448
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a490695ab536cd455c531fbdc57499cac"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a490695ab536cd455c531fbdc57499cac">SVF::SVFGOPT::setActualINDef</a></div><div class="ttdeci">void setActualINDef(NodeID ai, NodeID def)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00269">SVFGOPT.h:269</a></div></div>
|
|
2448
2449
|
<div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
|
|
2449
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a3e2b811dd939c93bcf9fb94e91d553b1"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a3e2b811dd939c93bcf9fb94e91d553b1">SVF::SVFGOPT::setFormalOUTDef</a></div><div class="ttdeci">void setFormalOUTDef(NodeID fo, NodeID def)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2450
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a3e2b811dd939c93bcf9fb94e91d553b1"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a3e2b811dd939c93bcf9fb94e91d553b1">SVF::SVFGOPT::setFormalOUTDef</a></div><div class="ttdeci">void setFormalOUTDef(NodeID fo, NodeID def)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00276">SVFGOPT.h:276</a></div></div>
|
|
2450
2451
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00165">GenericGraph.h:165</a></div></div>
|
|
2451
2452
|
<div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
|
|
2452
2453
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_afa99da68ef756d968d39a85f0fac3649"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#afa99da68ef756d968d39a85f0fac3649">SVF::SVFGOPT::addRetIndirectSVFGEdge</a></div><div class="ttdeci">SVFGEdge * addRetIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS &cpts)</div><div class="ttdoc">Add indirect ret edge from src to dst with one call site ID. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00079">SVFGOPT.cpp:79</a></div></div>
|
|
@@ -2493,7 +2494,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2493
2494
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a11dc712bf74ba61160fed7a5c3efaeee"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a11dc712bf74ba61160fed7a5c3efaeee">SVF::SVFGOPT::addCallIndirectSVFGEdge</a></div><div class="ttdeci">SVFGEdge * addCallIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS &cpts)</div><div class="ttdoc">Add inter-procedural value flow edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00068">SVFGOPT.cpp:68</a></div></div>
|
|
2494
2495
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ae5b113921530eee6afe58a65d8e5b3a7"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">SVF::GenericNode::InEdgeBegin</a></div><div class="ttdeci">iterator InEdgeBegin()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00210">GenericGraph.h:210</a></div></div>
|
|
2495
2496
|
<div class="ttc" id="classSVF_1_1GenericNode_html_afe6a7b286d9af4992f41b59612fd2900"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">SVF::GenericNode::InEdgeEnd</a></div><div class="ttdeci">iterator InEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00214">GenericGraph.h:214</a></div></div>
|
|
2496
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac15b3c2cb127b17ebad3a30fc04b6f40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">SVF::SVFGOPT::removeAllEdges</a></div><div class="ttdeci">void removeAllEdges(const SVFGNode *node)</div><div class="ttdoc">Remove edges of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2497
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_ac15b3c2cb127b17ebad3a30fc04b6f40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">SVF::SVFGOPT::removeAllEdges</a></div><div class="ttdeci">void removeAllEdges(const SVFGNode *node)</div><div class="ttdoc">Remove edges of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00330">SVFGOPT.h:330</a></div></div>
|
|
2497
2498
|
<div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
|
|
2498
2499
|
<div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
|
|
2499
2500
|
<div class="ttc" id="classSVF_1_1SVFGOPT_html_afa99da68ef756d968d39a85f0fac3649"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#afa99da68ef756d968d39a85f0fac3649">SVF::SVFGOPT::addRetIndirectSVFGEdge</a></div><div class="ttdeci">SVFGEdge * addRetIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS &cpts)</div><div class="ttdoc">Add indirect ret edge from src to dst with one call site ID. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00079">SVFGOPT.cpp:79</a></div></div>
|
|
@@ -2539,10 +2540,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2539
2540
|
</div><div class="memdoc">
|
|
2540
2541
|
<p>Set def-site of actual-in/formal-out. </p>
|
|
2541
2542
|
|
|
2542
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2543
|
-
<div class="fragment"><div class="line"><a name="
|
|
2544
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_abd524dca72261bbcc7ebb1103b693a2b"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">SVF::SVFGOPT::defNodes</a></div><div class="ttdeci">NodeBS defNodes</div><div class="ttdoc">preserved def nodes of formal-in/actual-out </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2545
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a9741514d915bf7f14787cc346b9d7c98"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">SVF::SVFGOPT::actualInToDefMap</a></div><div class="ttdeci">NodeIDToNodeIDMap actualInToDefMap</div><div class="ttdoc">map actual-in to its def-site node </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2543
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00269">269</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2544
|
+
<div class="fragment"><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>  NodeIDToNodeIDMap::const_iterator it = <a class="code" href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">actualInToDefMap</a>.find(ai);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it == <a class="code" href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">actualInToDefMap</a>.end() && <span class="stringliteral">"can not set actual-in's def twice"</span>);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">actualInToDefMap</a>[ai] = def;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">defNodes</a>.set(def);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
2545
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_abd524dca72261bbcc7ebb1103b693a2b"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">SVF::SVFGOPT::defNodes</a></div><div class="ttdeci">NodeBS defNodes</div><div class="ttdoc">preserved def nodes of formal-in/actual-out </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00351">SVFGOPT.h:351</a></div></div>
|
|
2546
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_a9741514d915bf7f14787cc346b9d7c98"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">SVF::SVFGOPT::actualInToDefMap</a></div><div class="ttdeci">NodeIDToNodeIDMap actualInToDefMap</div><div class="ttdoc">map actual-in to its def-site node </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00349">SVFGOPT.h:349</a></div></div>
|
|
2546
2547
|
</div><!-- fragment -->
|
|
2547
2548
|
</div>
|
|
2548
2549
|
</div>
|
|
@@ -2580,10 +2581,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2580
2581
|
</table>
|
|
2581
2582
|
</div><div class="memdoc">
|
|
2582
2583
|
|
|
2583
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2584
|
-
<div class="fragment"><div class="line"><a name="
|
|
2585
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_abbd6ac28826b9cc4c4981271393c8b19"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">SVF::SVFGOPT::formalOutToDefMap</a></div><div class="ttdeci">NodeIDToNodeIDMap formalOutToDefMap</div><div class="ttdoc">map formal-out to its def-site node </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2586
|
-
<div class="ttc" id="classSVF_1_1SVFGOPT_html_abd524dca72261bbcc7ebb1103b693a2b"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">SVF::SVFGOPT::defNodes</a></div><div class="ttdeci">NodeBS defNodes</div><div class="ttdoc">preserved def nodes of formal-in/actual-out </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2584
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00276">276</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2585
|
+
<div class="fragment"><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>  NodeIDToNodeIDMap::const_iterator it = <a class="code" href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">formalOutToDefMap</a>.find(fo);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it == <a class="code" href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">formalOutToDefMap</a>.end() && <span class="stringliteral">"can not set formal-out's def twice"</span>);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">formalOutToDefMap</a>[fo] = def;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">defNodes</a>.set(def);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
2586
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_abbd6ac28826b9cc4c4981271393c8b19"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">SVF::SVFGOPT::formalOutToDefMap</a></div><div class="ttdeci">NodeIDToNodeIDMap formalOutToDefMap</div><div class="ttdoc">map formal-out to its def-site node </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00350">SVFGOPT.h:350</a></div></div>
|
|
2587
|
+
<div class="ttc" id="classSVF_1_1SVFGOPT_html_abd524dca72261bbcc7ebb1103b693a2b"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">SVF::SVFGOPT::defNodes</a></div><div class="ttdeci">NodeBS defNodes</div><div class="ttdoc">preserved def nodes of formal-in/actual-out </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00351">SVFGOPT.h:351</a></div></div>
|
|
2587
2588
|
</div><!-- fragment -->
|
|
2588
2589
|
</div>
|
|
2589
2590
|
</div>
|
|
@@ -2611,7 +2612,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2611
2612
|
</div><div class="memdoc">
|
|
2612
2613
|
|
|
2613
2614
|
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00071">71</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2614
|
-
<div class="fragment"><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>  <a class="code" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">keepActualOutFormalIn</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_a7e57ca56a587a5b59543b5bab7fe794d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">SVF::SVFGOPT::keepActualOutFormalIn</a></div><div class="ttdeci">bool keepActualOutFormalIn</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2615
|
+
<div class="fragment"><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>  <a class="code" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">keepActualOutFormalIn</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_a7e57ca56a587a5b59543b5bab7fe794d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">SVF::SVFGOPT::keepActualOutFormalIn</a></div><div class="ttdeci">bool keepActualOutFormalIn</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00355">SVFGOPT.h:355</a></div></div>
|
|
2615
2616
|
</div><!-- fragment -->
|
|
2616
2617
|
</div>
|
|
2617
2618
|
</div>
|
|
@@ -2639,7 +2640,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2639
2640
|
</div><div class="memdoc">
|
|
2640
2641
|
|
|
2641
2642
|
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00075">75</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2642
|
-
<div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_a65bba62d9b62bf2bdbbda69540eeb38d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">SVF::SVFGOPT::keepAllSelfCycle</a></div><div class="ttdeci">bool keepAllSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2643
|
+
<div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_a65bba62d9b62bf2bdbbda69540eeb38d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">SVF::SVFGOPT::keepAllSelfCycle</a></div><div class="ttdeci">bool keepAllSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00356">SVFGOPT.h:356</a></div></div>
|
|
2643
2644
|
</div><!-- fragment -->
|
|
2644
2645
|
</div>
|
|
2645
2646
|
</div>
|
|
@@ -2667,7 +2668,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2667
2668
|
</div><div class="memdoc">
|
|
2668
2669
|
|
|
2669
2670
|
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00079">79</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2670
|
-
<div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_ac68a53c567929ba8b69c00e3e8d9d30f"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">SVF::SVFGOPT::keepContextSelfCycle</a></div><div class="ttdeci">bool keepContextSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#
|
|
2671
|
+
<div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_ac68a53c567929ba8b69c00e3e8d9d30f"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">SVF::SVFGOPT::keepContextSelfCycle</a></div><div class="ttdeci">bool keepContextSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00357">SVFGOPT.h:357</a></div></div>
|
|
2671
2672
|
</div><!-- fragment -->
|
|
2672
2673
|
</div>
|
|
2673
2674
|
</div>
|
|
@@ -2694,7 +2695,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2694
2695
|
|
|
2695
2696
|
<p>map actual-in to its def-site node </p>
|
|
2696
2697
|
|
|
2697
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2698
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00349">349</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2698
2699
|
|
|
2699
2700
|
</div>
|
|
2700
2701
|
</div>
|
|
@@ -2720,7 +2721,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2720
2721
|
|
|
2721
2722
|
<p>preserved def nodes of formal-in/actual-out </p>
|
|
2722
2723
|
|
|
2723
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2724
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00351">351</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2724
2725
|
|
|
2725
2726
|
</div>
|
|
2726
2727
|
</div>
|
|
@@ -2746,7 +2747,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2746
2747
|
|
|
2747
2748
|
<p>map formal-out to its def-site node </p>
|
|
2748
2749
|
|
|
2749
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2750
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00350">350</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2750
2751
|
|
|
2751
2752
|
</div>
|
|
2752
2753
|
</div>
|
|
@@ -2770,7 +2771,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2770
2771
|
</table>
|
|
2771
2772
|
</div><div class="memdoc">
|
|
2772
2773
|
|
|
2773
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2774
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00355">355</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2774
2775
|
|
|
2775
2776
|
</div>
|
|
2776
2777
|
</div>
|
|
@@ -2794,7 +2795,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2794
2795
|
</table>
|
|
2795
2796
|
</div><div class="memdoc">
|
|
2796
2797
|
|
|
2797
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2798
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00356">356</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2798
2799
|
|
|
2799
2800
|
</div>
|
|
2800
2801
|
</div>
|
|
@@ -2818,7 +2819,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2818
2819
|
</table>
|
|
2819
2820
|
</div><div class="memdoc">
|
|
2820
2821
|
|
|
2821
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2822
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00357">357</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2822
2823
|
|
|
2823
2824
|
</div>
|
|
2824
2825
|
</div>
|
|
@@ -2844,7 +2845,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2844
2845
|
|
|
2845
2846
|
<p>storing <a class="el" href="classSVF_1_1MSSAPHI.html">MSSAPHI</a> nodes which may be removed. </p>
|
|
2846
2847
|
|
|
2847
|
-
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#
|
|
2848
|
+
<p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00353">353</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
|
|
2848
2849
|
|
|
2849
2850
|
</div>
|
|
2850
2851
|
</div>
|