svf-tools 1.0.790 → 1.0.791

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.
@@ -789,70 +789,72 @@ $(function() {
789
789
  <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node-&gt;<a class="code" href="classSVF_1_1CFBasicBlockNode.html#a48c0b6643c481afb15d4c4f89d00eecb">getOutEdges</a>().begin(), et = node-&gt;<a class="code" href="classSVF_1_1CFBasicBlockNode.html#a48c0b6643c481afb15d4c4f89d00eecb">getOutEdges</a>().end(); it != et; ++it)</div>
790
790
  <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; {</div>
791
791
  <div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *succ = (*it)-&gt;getDstNode();</div>
792
- <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a> succ_dfn = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c">getCDN</a>(succ);</div>
793
- <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">if</span> (succ_dfn == <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a>(0))</div>
794
- <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; {</div>
795
- <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; min = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#af7351af6e43b593b9915ed2a2d0d16fb">visit</a>(succ, partition);</div>
796
- <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; }</div>
797
- <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordflow">else</span></div>
798
- <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; {</div>
799
- <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; min = succ_dfn;</div>
800
- <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; }</div>
801
- <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="keywordflow">if</span> (min &lt;= head)</div>
802
- <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; {</div>
803
- <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; head = min;</div>
804
- <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; loop = <span class="keyword">true</span>;</div>
805
- <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; }</div>
806
- <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; }</div>
807
- <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; }</div>
808
- <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordflow">if</span> (head == <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c">getCDN</a>(node))</div>
809
- <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; {</div>
810
- <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898">setCDN</a>(node, UINT_MAX);</div>
811
- <div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *element = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad8d9315b18c019bada948380f8a4bb35">pop</a>();</div>
812
- <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keywordflow">if</span> (loop)</div>
813
- <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; {</div>
814
- <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">while</span> (element != node)</div>
815
- <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; {</div>
816
- <div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898">setCDN</a>(element, 0);</div>
817
- <div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; element = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad8d9315b18c019bada948380f8a4bb35">pop</a>();</div>
818
- <div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; }</div>
819
- <div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; partition.push_front(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a9dd4ed2f3347d529163a60e0386ea11d">component</a>(node));</div>
820
- <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; }</div>
821
- <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keywordflow">else</span></div>
822
- <div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; {</div>
823
- <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; partition.push_front(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#acab6d0c92dc8e03a97cc78b060a624c4">newNode</a>(node));</div>
824
- <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; }</div>
825
- <div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; }</div>
826
- <div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keywordflow">return</span> head;</div>
827
- <div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; }</div>
828
- <div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; </div>
829
- <div class="line"><a name="l00865"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#a50fa3b82172788c5e963d723b27900ba"> 865</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a50fa3b82172788c5e963d723b27900ba">buildNodeToWTOCycleDepth</a>()</div>
830
- <div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; {</div>
831
- <div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO_1_1WTOCycleDepthBuilder.html">WTOCycleDepthBuilder</a> builder(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada96b743fb0fd92f5f2c539130404187">_nodeToDepth</a>);</div>
832
- <div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a62021e77023442dc809f6441cd3692c5">begin</a>(), et = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad915ed46be9ae3dbd7ee8227c0dee40d">end</a>(); it != et; ++it)</div>
833
- <div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; {</div>
834
- <div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; (*it)-&gt;accept(&amp;builder);</div>
835
- <div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; }</div>
836
- <div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; }</div>
837
- <div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; </div>
838
- <div class="line"><a name="l00875"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#a371c7416c88df3c0b70addf9b88b305a"> 875</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a371c7416c88df3c0b70addf9b88b305a">build_tails</a>()</div>
839
- <div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; {</div>
840
- <div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;head: <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ab9fa2e63665b25c8fb771e92dc9b19dc">_headToCycle</a>)</div>
841
- <div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; {</div>
842
- <div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada27aa4f9b577c7f7cef09e9936327f2">NodeRefSet</a> tails;</div>
843
- <div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html">TailBuilder</a> builder(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad00addfd46be014c35a6ffbc9333d7f3">_graph</a>, <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada96b743fb0fd92f5f2c539130404187">_nodeToDepth</a>, tails, head.first, <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a47b0a759cac2b4264b8c01dbe9f1c63f">getWTOCycleDepth</a>(head.first));</div>
844
- <div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = head.second-&gt;begin(), eit = head.second-&gt;end(); it != eit; ++it)</div>
845
- <div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; {</div>
846
- <div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; (*it)-&gt;accept(&amp;builder);</div>
847
- <div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; }</div>
848
- <div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#abb5b72dbfa6f00bf952f1b71deb48598">_headToTails</a>.emplace(head.first, tails);</div>
849
- <div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; }</div>
850
- <div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; }</div>
851
- <div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; </div>
852
- <div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;}; <span class="comment">// end class CFBasicBlockGWTO</span></div>
792
+ <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordflow">if</span> (succ-&gt;<a class="code" href="classSVF_1_1CFBasicBlockNode.html#ad8afed175964dc0b90f98dbf68fdf1c8">getFunction</a>() != node-&gt;<a class="code" href="classSVF_1_1CFBasicBlockNode.html#ad8afed175964dc0b90f98dbf68fdf1c8">getFunction</a>())</div>
793
+ <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">continue</span>;</div>
794
+ <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a> succ_dfn = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c">getCDN</a>(succ);</div>
795
+ <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keywordflow">if</span> (succ_dfn == <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a>(0))</div>
796
+ <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; {</div>
797
+ <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; min = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#af7351af6e43b593b9915ed2a2d0d16fb">visit</a>(succ, partition);</div>
798
+ <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; }</div>
799
+ <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="keywordflow">else</span></div>
800
+ <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; {</div>
801
+ <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; min = succ_dfn;</div>
802
+ <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; }</div>
803
+ <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">if</span> (min &lt;= head)</div>
804
+ <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; {</div>
805
+ <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; head = min;</div>
806
+ <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; loop = <span class="keyword">true</span>;</div>
807
+ <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; }</div>
808
+ <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; }</div>
809
+ <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; }</div>
810
+ <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordflow">if</span> (head == <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c">getCDN</a>(node))</div>
811
+ <div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; {</div>
812
+ <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898">setCDN</a>(node, UINT_MAX);</div>
813
+ <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *element = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad8d9315b18c019bada948380f8a4bb35">pop</a>();</div>
814
+ <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">if</span> (loop)</div>
815
+ <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; {</div>
816
+ <div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keywordflow">while</span> (element != node)</div>
817
+ <div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; {</div>
818
+ <div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898">setCDN</a>(element, 0);</div>
819
+ <div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; element = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad8d9315b18c019bada948380f8a4bb35">pop</a>();</div>
820
+ <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; }</div>
821
+ <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; partition.push_front(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a9dd4ed2f3347d529163a60e0386ea11d">component</a>(node));</div>
822
+ <div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; }</div>
823
+ <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">else</span></div>
824
+ <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; {</div>
825
+ <div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; partition.push_front(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#acab6d0c92dc8e03a97cc78b060a624c4">newNode</a>(node));</div>
826
+ <div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; }</div>
827
+ <div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; }</div>
828
+ <div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keywordflow">return</span> head;</div>
829
+ <div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; }</div>
830
+ <div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; </div>
831
+ <div class="line"><a name="l00867"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#a50fa3b82172788c5e963d723b27900ba"> 867</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a50fa3b82172788c5e963d723b27900ba">buildNodeToWTOCycleDepth</a>()</div>
832
+ <div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; {</div>
833
+ <div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO_1_1WTOCycleDepthBuilder.html">WTOCycleDepthBuilder</a> builder(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada96b743fb0fd92f5f2c539130404187">_nodeToDepth</a>);</div>
834
+ <div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a62021e77023442dc809f6441cd3692c5">begin</a>(), et = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad915ed46be9ae3dbd7ee8227c0dee40d">end</a>(); it != et; ++it)</div>
835
+ <div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; {</div>
836
+ <div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; (*it)-&gt;accept(&amp;builder);</div>
837
+ <div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; }</div>
838
+ <div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; }</div>
839
+ <div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; </div>
840
+ <div class="line"><a name="l00877"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#a371c7416c88df3c0b70addf9b88b305a"> 877</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a371c7416c88df3c0b70addf9b88b305a">build_tails</a>()</div>
841
+ <div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; {</div>
842
+ <div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;head: <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ab9fa2e63665b25c8fb771e92dc9b19dc">_headToCycle</a>)</div>
843
+ <div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; {</div>
844
+ <div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada27aa4f9b577c7f7cef09e9936327f2">NodeRefSet</a> tails;</div>
845
+ <div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html">TailBuilder</a> builder(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad00addfd46be014c35a6ffbc9333d7f3">_graph</a>, <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada96b743fb0fd92f5f2c539130404187">_nodeToDepth</a>, tails, head.first, <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a47b0a759cac2b4264b8c01dbe9f1c63f">getWTOCycleDepth</a>(head.first));</div>
846
+ <div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = head.second-&gt;begin(), eit = head.second-&gt;end(); it != eit; ++it)</div>
847
+ <div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; {</div>
848
+ <div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; (*it)-&gt;accept(&amp;builder);</div>
849
+ <div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; }</div>
850
+ <div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#abb5b72dbfa6f00bf952f1b71deb48598">_headToTails</a>.emplace(head.first, tails);</div>
851
+ <div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; }</div>
852
+ <div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; }</div>
853
853
  <div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; </div>
854
- <div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;} <span class="comment">// end namespace SVF</span></div>
855
- <div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* WTO_H_ */</span><span class="preprocessor"></span></div>
854
+ <div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;}; <span class="comment">// end class CFBasicBlockGWTO</span></div>
855
+ <div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; </div>
856
+ <div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;} <span class="comment">// end namespace SVF</span></div>
857
+ <div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* WTO_H_ */</span><span class="preprocessor"></span></div>
856
858
  </div><!-- fragment --></div><!-- contents -->
857
859
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOCycle_html_aba6a1249015322f073e05fcf089da801"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOCycle.html#aba6a1249015322f073e05fcf089da801">SVF::CFBasicBlockGWTOCycle::head</a></div><div class="ttdeci">const CFBasicBlockNode * head() const</div><div class="ttdoc">Return the head of the cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00405">WTO.h:405</a></div></div>
858
860
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOCycle_html"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOCycle.html">SVF::CFBasicBlockGWTOCycle</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00386">WTO.h:386</a></div></div>
@@ -921,7 +923,7 @@ $(function() {
921
923
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOCycle_html_a0406854fb89bcb7cabe2a83344b8f1f3"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOCycle.html#a0406854fb89bcb7cabe2a83344b8f1f3">SVF::CFBasicBlockGWTOCycle::toString</a></div><div class="ttdeci">std::string toString() const override</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00439">WTO.h:439</a></div></div>
922
924
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGraph_html_a54200b5a7c41c2ba19660da34c295e81"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGraph.html#a54200b5a7c41c2ba19660da34c295e81">SVF::CFBasicBlockGraph::getCFBasicBlockNode</a></div><div class="ttdeci">CFBasicBlockNode * getCFBasicBlockNode(u32_t id) const</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00370">CFBasicBlockG.h:370</a></div></div>
923
925
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOComp_html_a2d4103fde1e02e8ba88c375d33a1dbad"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOComp.html#a2d4103fde1e02e8ba88c375d33a1dbad">SVF::CFBasicBlockGWTOComp::toString</a></div><div class="ttdeci">virtual std::string toString() const =0</div></div>
924
- <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a50fa3b82172788c5e963d723b27900ba"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a50fa3b82172788c5e963d723b27900ba">SVF::CFBasicBlockGWTO::buildNodeToWTOCycleDepth</a></div><div class="ttdeci">void buildNodeToWTOCycleDepth()</div><div class="ttdoc">Build the node to WTO cycle depth table.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00865">WTO.h:865</a></div></div>
926
+ <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a50fa3b82172788c5e963d723b27900ba"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a50fa3b82172788c5e963d723b27900ba">SVF::CFBasicBlockGWTO::buildNodeToWTOCycleDepth</a></div><div class="ttdeci">void buildNodeToWTOCycleDepth()</div><div class="ttdoc">Build the node to WTO cycle depth table.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00867">WTO.h:867</a></div></div>
925
927
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockNode_html_afdad57a83c392a8b14b838ecb58f9ff7"><div class="ttname"><a href="classSVF_1_1CFBasicBlockNode.html#afdad57a83c392a8b14b838ecb58f9ff7">SVF::CFBasicBlockNode::getICFGNodes</a></div><div class="ttdeci">const std::vector&lt; const ICFGNode * &gt; &amp; getICFGNodes() const</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00147">CFBasicBlockG.h:147</a></div></div>
926
928
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_ac70fb325200079c4ffee90e1666a3694"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#ac70fb325200079c4ffee90e1666a3694">SVF::CFBasicBlockGWTO::_allComponents</a></div><div class="ttdeci">WTOCompRefSet _allComponents</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00488">WTO.h:488</a></div></div>
927
929
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_abb5b72dbfa6f00bf952f1b71deb48598"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#abb5b72dbfa6f00bf952f1b71deb48598">SVF::CFBasicBlockGWTO::_headToTails</a></div><div class="ttdeci">NodeRefToNodeRefSetMap _headToTails</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00490">WTO.h:490</a></div></div>
@@ -930,6 +932,7 @@ $(function() {
930
932
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_1_1TailBuilder_html_a6b6c7f89989b77a25b2f464f4450e879"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#a6b6c7f89989b77a25b2f464f4450e879">SVF::CFBasicBlockGWTO::TailBuilder::visit</a></div><div class="ttdeci">virtual void visit(const CFBasicBlockGWTONode &amp;node) override</div><div class="ttdoc">Visit WTO Node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00674">WTO.h:674</a></div></div>
931
933
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_1_1TailBuilder_html_aeb1a15b36d109ea3c286a73af5f08777"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#aeb1a15b36d109ea3c286a73af5f08777">SVF::CFBasicBlockGWTO::TailBuilder::_graph</a></div><div class="ttdeci">CFBasicBlockGraph * _graph</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00656">WTO.h:656</a></div></div>
932
934
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a97fb5b5dff4b1b08ee6fb09876630303"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a97fb5b5dff4b1b08ee6fb09876630303">SVF::CFBasicBlockGWTO::_stack</a></div><div class="ttdeci">CFBasicBlockNodes _stack</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00494">WTO.h:494</a></div></div>
935
+ <div class="ttc" id="aclassSVF_1_1CFBasicBlockNode_html_ad8afed175964dc0b90f98dbf68fdf1c8"><div class="ttname"><a href="classSVF_1_1CFBasicBlockNode.html#ad8afed175964dc0b90f98dbf68fdf1c8">SVF::CFBasicBlockNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00152">CFBasicBlockG.h:152</a></div></div>
933
936
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTONode_html_a5b614494716dd565c0af2b7e8110f8d0"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTONode.html#a5b614494716dd565c0af2b7e8110f8d0">SVF::CFBasicBlockGWTONode::toString</a></div><div class="ttdeci">std::string toString() const override</div><div class="ttdoc">Convert the node to string.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00362">WTO.h:362</a></div></div>
934
937
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html">SVF::CFBasicBlockGWTO</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00464">WTO.h:464</a></div></div>
935
938
  <div class="ttc" id="aclassSVF_1_1WTOVisitor_html_aa338935535bb5c855224aa01d624f9d8"><div class="ttname"><a href="classSVF_1_1WTOVisitor.html#aa338935535bb5c855224aa01d624f9d8">SVF::WTOVisitor::visit</a></div><div class="ttdeci">virtual void visit(const CFBasicBlockGWTONode &amp;)=0</div><div class="ttdoc">Visit WTO Node.</div></div>
@@ -937,7 +940,7 @@ $(function() {
937
940
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTONode_html_a2d94a3f6bd93d6b3806ec03de3eb1576"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTONode.html#a2d94a3f6bd93d6b3806ec03de3eb1576">SVF::CFBasicBlockGWTONode::classof</a></div><div class="ttdeci">static bool classof(const CFBasicBlockGWTONode *)</div><div class="ttdoc">ClassOf.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00369">WTO.h:369</a></div></div>
938
941
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_1_1TailBuilder_html_ae846777ace039ab74fad15ee52884f44"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#ae846777ace039ab74fad15ee52884f44">SVF::CFBasicBlockGWTO::TailBuilder::_head</a></div><div class="ttdeci">const CFBasicBlockNode * _head</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00654">WTO.h:654</a></div></div>
939
942
  <div class="ttc" id="aclassSVF_1_1WTOVisitor_html_a78a0b2d508d8591126203f8b5d6e22cd"><div class="ttname"><a href="classSVF_1_1WTOVisitor.html#a78a0b2d508d8591126203f8b5d6e22cd">SVF::WTOVisitor::WTOVisitor</a></div><div class="ttdeci">WTOVisitor()=default</div><div class="ttdoc">Default Constructor.</div></div>
940
- <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a371c7416c88df3c0b70addf9b88b305a"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a371c7416c88df3c0b70addf9b88b305a">SVF::CFBasicBlockGWTO::build_tails</a></div><div class="ttdeci">virtual void build_tails()</div><div class="ttdoc">Build the tails for each cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00875">WTO.h:875</a></div></div>
943
+ <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a371c7416c88df3c0b70addf9b88b305a"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a371c7416c88df3c0b70addf9b88b305a">SVF::CFBasicBlockGWTO::build_tails</a></div><div class="ttdeci">virtual void build_tails()</div><div class="ttdoc">Build the tails for each cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00877">WTO.h:877</a></div></div>
941
944
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOComp_html_a83d5f4a0d2c4efc9840d30f1a1c3b300aca33b5832e3fca1c5966ecc4ce695f96"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOComp.html#a83d5f4a0d2c4efc9840d30f1a1c3b300aca33b5832e3fca1c5966ecc4ce695f96">SVF::CFBasicBlockGWTOComp::Cycle</a></div><div class="ttdeci">@ Cycle</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00291">WTO.h:291</a></div></div>
942
945
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference&lt; T &gt;::type &amp;&amp; move(T &amp;&amp;t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00621">SVFUtil.h:621</a></div></div>
943
946
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a622b439ca78cc523abe308b26daa337b"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a622b439ca78cc523abe308b26daa337b">SVF::CFBasicBlockGWTO::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;o, const CFBasicBlockGWTO &amp;CFBasicBlockGWTO)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00596">WTO.h:596</a></div></div>
@@ -771,19 +771,19 @@ Friends</h2></td></tr>
771
771
 
772
772
  <p>Build the tails for each cycle. </p>
773
773
 
774
- <p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#l00875">875</a> of file <a class="el" href="WTO_8h_source.html">WTO.h</a>.</p>
775
- <div class="fragment"><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; {</div>
776
- <div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;head: <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ab9fa2e63665b25c8fb771e92dc9b19dc">_headToCycle</a>)</div>
777
- <div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; {</div>
778
- <div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada27aa4f9b577c7f7cef09e9936327f2">NodeRefSet</a> tails;</div>
779
- <div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; TailBuilder builder(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad00addfd46be014c35a6ffbc9333d7f3">_graph</a>, <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada96b743fb0fd92f5f2c539130404187">_nodeToDepth</a>, tails, head.first, <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a47b0a759cac2b4264b8c01dbe9f1c63f">getWTOCycleDepth</a>(head.first));</div>
780
- <div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = head.second-&gt;begin(), eit = head.second-&gt;end(); it != eit; ++it)</div>
781
- <div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; {</div>
782
- <div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; (*it)-&gt;accept(&amp;builder);</div>
783
- <div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; }</div>
784
- <div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#abb5b72dbfa6f00bf952f1b71deb48598">_headToTails</a>.emplace(head.first, tails);</div>
785
- <div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; }</div>
786
- <div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; }</div>
774
+ <p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#l00877">877</a> of file <a class="el" href="WTO_8h_source.html">WTO.h</a>.</p>
775
+ <div class="fragment"><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; {</div>
776
+ <div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;head: <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ab9fa2e63665b25c8fb771e92dc9b19dc">_headToCycle</a>)</div>
777
+ <div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; {</div>
778
+ <div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada27aa4f9b577c7f7cef09e9936327f2">NodeRefSet</a> tails;</div>
779
+ <div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; TailBuilder builder(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad00addfd46be014c35a6ffbc9333d7f3">_graph</a>, <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada96b743fb0fd92f5f2c539130404187">_nodeToDepth</a>, tails, head.first, <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a47b0a759cac2b4264b8c01dbe9f1c63f">getWTOCycleDepth</a>(head.first));</div>
780
+ <div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = head.second-&gt;begin(), eit = head.second-&gt;end(); it != eit; ++it)</div>
781
+ <div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; {</div>
782
+ <div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; (*it)-&gt;accept(&amp;builder);</div>
783
+ <div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; }</div>
784
+ <div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#abb5b72dbfa6f00bf952f1b71deb48598">_headToTails</a>.emplace(head.first, tails);</div>
785
+ <div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; }</div>
786
+ <div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; }</div>
787
787
  </div><!-- fragment -->
788
788
  </div>
789
789
  </div>
@@ -812,14 +812,14 @@ Friends</h2></td></tr>
812
812
 
813
813
  <p>Build the node to WTO cycle depth table. </p>
814
814
 
815
- <p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#l00865">865</a> of file <a class="el" href="WTO_8h_source.html">WTO.h</a>.</p>
816
- <div class="fragment"><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; {</div>
817
- <div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; WTOCycleDepthBuilder builder(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada96b743fb0fd92f5f2c539130404187">_nodeToDepth</a>);</div>
818
- <div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a62021e77023442dc809f6441cd3692c5">begin</a>(), et = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad915ed46be9ae3dbd7ee8227c0dee40d">end</a>(); it != et; ++it)</div>
819
- <div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; {</div>
820
- <div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; (*it)-&gt;accept(&amp;builder);</div>
821
- <div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; }</div>
822
- <div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; }</div>
815
+ <p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#l00867">867</a> of file <a class="el" href="WTO_8h_source.html">WTO.h</a>.</p>
816
+ <div class="fragment"><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; {</div>
817
+ <div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; WTOCycleDepthBuilder builder(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada96b743fb0fd92f5f2c539130404187">_nodeToDepth</a>);</div>
818
+ <div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a62021e77023442dc809f6441cd3692c5">begin</a>(), et = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad915ed46be9ae3dbd7ee8227c0dee40d">end</a>(); it != et; ++it)</div>
819
+ <div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; {</div>
820
+ <div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; (*it)-&gt;accept(&amp;builder);</div>
821
+ <div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; }</div>
822
+ <div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; }</div>
823
823
  </div><!-- fragment -->
824
824
  </div>
825
825
  </div>
@@ -1498,42 +1498,44 @@ Friends</h2></td></tr>
1498
1498
  <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node-&gt;getOutEdges().begin(), et = node-&gt;getOutEdges().end(); it != et; ++it)</div>
1499
1499
  <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; {</div>
1500
1500
  <div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keyword">const</span> CFBasicBlockNode *succ = (*it)-&gt;getDstNode();</div>
1501
- <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a> succ_dfn = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c">getCDN</a>(succ);</div>
1502
- <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">if</span> (succ_dfn == <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a>(0))</div>
1503
- <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; {</div>
1504
- <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; min = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#af7351af6e43b593b9915ed2a2d0d16fb">visit</a>(succ, partition);</div>
1505
- <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; }</div>
1506
- <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordflow">else</span></div>
1507
- <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; {</div>
1508
- <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; min = succ_dfn;</div>
1509
- <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; }</div>
1510
- <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="keywordflow">if</span> (min &lt;= head)</div>
1511
- <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; {</div>
1512
- <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; head = min;</div>
1513
- <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; loop = <span class="keyword">true</span>;</div>
1514
- <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; }</div>
1515
- <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; }</div>
1516
- <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; }</div>
1517
- <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordflow">if</span> (head == <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c">getCDN</a>(node))</div>
1518
- <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; {</div>
1519
- <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898">setCDN</a>(node, UINT_MAX);</div>
1520
- <div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keyword">const</span> CFBasicBlockNode *element = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad8d9315b18c019bada948380f8a4bb35">pop</a>();</div>
1521
- <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keywordflow">if</span> (loop)</div>
1522
- <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; {</div>
1523
- <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">while</span> (element != node)</div>
1524
- <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; {</div>
1525
- <div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898">setCDN</a>(element, 0);</div>
1526
- <div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; element = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad8d9315b18c019bada948380f8a4bb35">pop</a>();</div>
1527
- <div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; }</div>
1528
- <div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; partition.push_front(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a9dd4ed2f3347d529163a60e0386ea11d">component</a>(node));</div>
1529
- <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; }</div>
1530
- <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keywordflow">else</span></div>
1531
- <div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; {</div>
1532
- <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; partition.push_front(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#acab6d0c92dc8e03a97cc78b060a624c4">newNode</a>(node));</div>
1533
- <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; }</div>
1534
- <div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; }</div>
1535
- <div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keywordflow">return</span> head;</div>
1536
- <div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; }</div>
1501
+ <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordflow">if</span> (succ-&gt;getFunction() != node-&gt;getFunction())</div>
1502
+ <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">continue</span>;</div>
1503
+ <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a> succ_dfn = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c">getCDN</a>(succ);</div>
1504
+ <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keywordflow">if</span> (succ_dfn == <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a>(0))</div>
1505
+ <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; {</div>
1506
+ <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; min = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#af7351af6e43b593b9915ed2a2d0d16fb">visit</a>(succ, partition);</div>
1507
+ <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; }</div>
1508
+ <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="keywordflow">else</span></div>
1509
+ <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; {</div>
1510
+ <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; min = succ_dfn;</div>
1511
+ <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; }</div>
1512
+ <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">if</span> (min &lt;= head)</div>
1513
+ <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; {</div>
1514
+ <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; head = min;</div>
1515
+ <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; loop = <span class="keyword">true</span>;</div>
1516
+ <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; }</div>
1517
+ <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; }</div>
1518
+ <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; }</div>
1519
+ <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordflow">if</span> (head == <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c">getCDN</a>(node))</div>
1520
+ <div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; {</div>
1521
+ <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898">setCDN</a>(node, UINT_MAX);</div>
1522
+ <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keyword">const</span> CFBasicBlockNode *element = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad8d9315b18c019bada948380f8a4bb35">pop</a>();</div>
1523
+ <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">if</span> (loop)</div>
1524
+ <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; {</div>
1525
+ <div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keywordflow">while</span> (element != node)</div>
1526
+ <div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; {</div>
1527
+ <div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898">setCDN</a>(element, 0);</div>
1528
+ <div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; element = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad8d9315b18c019bada948380f8a4bb35">pop</a>();</div>
1529
+ <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; }</div>
1530
+ <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; partition.push_front(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a9dd4ed2f3347d529163a60e0386ea11d">component</a>(node));</div>
1531
+ <div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; }</div>
1532
+ <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">else</span></div>
1533
+ <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; {</div>
1534
+ <div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; partition.push_front(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#acab6d0c92dc8e03a97cc78b060a624c4">newNode</a>(node));</div>
1535
+ <div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; }</div>
1536
+ <div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; }</div>
1537
+ <div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keywordflow">return</span> head;</div>
1538
+ <div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; }</div>
1537
1539
  </div><!-- fragment -->
1538
1540
  </div>
1539
1541
  </div>
@@ -1816,11 +1818,11 @@ Friends</h2></td></tr>
1816
1818
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
1817
1819
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_ad9665cea2ec92371ecab7e86f7ac2923"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#ad9665cea2ec92371ecab7e86f7ac2923">SVF::CFBasicBlockGWTO::push</a></div><div class="ttdeci">void push(const CFBasicBlockNode *n)</div><div class="ttdoc">Push a node on the stack.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00745">WTO.h:745</a></div></div>
1818
1820
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGraph_html_a54200b5a7c41c2ba19660da34c295e81"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGraph.html#a54200b5a7c41c2ba19660da34c295e81">SVF::CFBasicBlockGraph::getCFBasicBlockNode</a></div><div class="ttdeci">CFBasicBlockNode * getCFBasicBlockNode(u32_t id) const</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00370">CFBasicBlockG.h:370</a></div></div>
1819
- <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a50fa3b82172788c5e963d723b27900ba"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a50fa3b82172788c5e963d723b27900ba">SVF::CFBasicBlockGWTO::buildNodeToWTOCycleDepth</a></div><div class="ttdeci">void buildNodeToWTOCycleDepth()</div><div class="ttdoc">Build the node to WTO cycle depth table.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00865">WTO.h:865</a></div></div>
1821
+ <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a50fa3b82172788c5e963d723b27900ba"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a50fa3b82172788c5e963d723b27900ba">SVF::CFBasicBlockGWTO::buildNodeToWTOCycleDepth</a></div><div class="ttdeci">void buildNodeToWTOCycleDepth()</div><div class="ttdoc">Build the node to WTO cycle depth table.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00867">WTO.h:867</a></div></div>
1820
1822
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_ac70fb325200079c4ffee90e1666a3694"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#ac70fb325200079c4ffee90e1666a3694">SVF::CFBasicBlockGWTO::_allComponents</a></div><div class="ttdeci">WTOCompRefSet _allComponents</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00488">WTO.h:488</a></div></div>
1821
1823
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_abb5b72dbfa6f00bf952f1b71deb48598"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#abb5b72dbfa6f00bf952f1b71deb48598">SVF::CFBasicBlockGWTO::_headToTails</a></div><div class="ttdeci">NodeRefToNodeRefSetMap _headToTails</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00490">WTO.h:490</a></div></div>
1822
1824
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a97fb5b5dff4b1b08ee6fb09876630303"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a97fb5b5dff4b1b08ee6fb09876630303">SVF::CFBasicBlockGWTO::_stack</a></div><div class="ttdeci">CFBasicBlockNodes _stack</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00494">WTO.h:494</a></div></div>
1823
- <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a371c7416c88df3c0b70addf9b88b305a"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a371c7416c88df3c0b70addf9b88b305a">SVF::CFBasicBlockGWTO::build_tails</a></div><div class="ttdeci">virtual void build_tails()</div><div class="ttdoc">Build the tails for each cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00875">WTO.h:875</a></div></div>
1825
+ <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a371c7416c88df3c0b70addf9b88b305a"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a371c7416c88df3c0b70addf9b88b305a">SVF::CFBasicBlockGWTO::build_tails</a></div><div class="ttdeci">virtual void build_tails()</div><div class="ttdoc">Build the tails for each cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00877">WTO.h:877</a></div></div>
1824
1826
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference&lt; T &gt;::type &amp;&amp; move(T &amp;&amp;t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00621">SVFUtil.h:621</a></div></div>
1825
1827
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a6cc2cb7b203e16b9cc8f5e121f39bd9f"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a6cc2cb7b203e16b9cc8f5e121f39bd9f">SVF::CFBasicBlockGWTO::build</a></div><div class="ttdeci">void build(const CFBasicBlockNode *entry)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00604">WTO.h:604</a></div></div>
1826
1828
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_ad8d9315b18c019bada948380f8a4bb35"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#ad8d9315b18c019bada948380f8a4bb35">SVF::CFBasicBlockGWTO::pop</a></div><div class="ttdeci">const CFBasicBlockNode * pop()</div><div class="ttdoc">Pop a node from the stack.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00736">WTO.h:736</a></div></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.790",
3
+ "version": "1.0.791",
4
4
  "description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -824,6 +824,8 @@ protected:
824
824
  for (auto it = node->getOutEdges().begin(), et = node->getOutEdges().end(); it != et; ++it)
825
825
  {
826
826
  const CFBasicBlockNode *succ = (*it)->getDstNode();
827
+ if (succ->getFunction() != node->getFunction())
828
+ continue;
827
829
  CycleDepthNumber succ_dfn = getCDN(succ);
828
830
  if (succ_dfn == CycleDepthNumber(0))
829
831
  {