svf-tools 1.0.792 → 1.0.793
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/CDGBuilder_8cpp_source.html +131 -127
- package/SVF-doxygen/html/CDGBuilder_8h_source.html +5 -5
- package/SVF-doxygen/html/WTO_8h_source.html +211 -208
- package/SVF-doxygen/html/classSVF_1_1CDGBuilder.html +122 -118
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO.html +174 -172
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html +17 -16
- package/package.json +1 -1
- package/svf/include/AbstractExecution/WTO.h +3 -0
- package/svf/lib/Util/CDGBuilder.cpp +13 -9
|
@@ -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#
|
|
775
|
-
<div class="fragment"><div class="line"><a name="
|
|
776
|
-
<div class="line"><a name="
|
|
777
|
-
<div class="line"><a name="
|
|
778
|
-
<div class="line"><a name="
|
|
779
|
-
<div class="line"><a name="
|
|
780
|
-
<div class="line"><a name="
|
|
781
|
-
<div class="line"><a name="
|
|
782
|
-
<div class="line"><a name="
|
|
783
|
-
<div class="line"><a name="
|
|
784
|
-
<div class="line"><a name="
|
|
785
|
-
<div class="line"><a name="
|
|
786
|
-
<div class="line"><a name="
|
|
774
|
+
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#l00880">880</a> of file <a class="el" href="WTO_8h_source.html">WTO.h</a>.</p>
|
|
775
|
+
<div class="fragment"><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  {</div>
|
|
776
|
+
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &head: <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ab9fa2e63665b25c8fb771e92dc9b19dc">_headToCycle</a>)</div>
|
|
777
|
+
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  {</div>
|
|
778
|
+
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada27aa4f9b577c7f7cef09e9936327f2">NodeRefSet</a> tails;</div>
|
|
779
|
+
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  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="l00886"></a><span class="lineno"> 886</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = head.second->begin(), eit = head.second->end(); it != eit; ++it)</div>
|
|
781
|
+
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  {</div>
|
|
782
|
+
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  (*it)->accept(&builder);</div>
|
|
783
|
+
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  }</div>
|
|
784
|
+
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#abb5b72dbfa6f00bf952f1b71deb48598">_headToTails</a>.emplace(head.first, tails);</div>
|
|
785
|
+
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  }</div>
|
|
786
|
+
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  }</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#
|
|
816
|
-
<div class="fragment"><div class="line"><a name="
|
|
817
|
-
<div class="line"><a name="
|
|
818
|
-
<div class="line"><a name="
|
|
819
|
-
<div class="line"><a name="
|
|
820
|
-
<div class="line"><a name="
|
|
821
|
-
<div class="line"><a name="
|
|
822
|
-
<div class="line"><a name="
|
|
815
|
+
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#l00870">870</a> of file <a class="el" href="WTO_8h_source.html">WTO.h</a>.</p>
|
|
816
|
+
<div class="fragment"><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  {</div>
|
|
817
|
+
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  WTOCycleDepthBuilder builder(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada96b743fb0fd92f5f2c539130404187">_nodeToDepth</a>);</div>
|
|
818
|
+
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <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="l00874"></a><span class="lineno"> 874</span>  {</div>
|
|
820
|
+
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  (*it)->accept(&builder);</div>
|
|
821
|
+
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  }</div>
|
|
822
|
+
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  }</div>
|
|
823
823
|
</div><!-- fragment -->
|
|
824
824
|
</div>
|
|
825
825
|
</div>
|
|
@@ -849,32 +849,33 @@ Friends</h2></td></tr>
|
|
|
849
849
|
|
|
850
850
|
<p>Create the cycle component for the given node. </p>
|
|
851
851
|
|
|
852
|
-
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#
|
|
853
|
-
<div class="fragment"><div class="line"><a name="
|
|
854
|
-
<div class="line"><a name="
|
|
855
|
-
<div class="line"><a name="
|
|
856
|
-
<div class="line"><a name="
|
|
857
|
-
<div class="line"><a name="
|
|
858
|
-
<div class="line"><a name="
|
|
859
|
-
<div class="line"><a name="
|
|
860
|
-
<div class="line"><a name="
|
|
861
|
-
<div class="line"><a name="
|
|
862
|
-
<div class="line"><a name="
|
|
863
|
-
<div class="line"><a name="
|
|
864
|
-
<div class="line"><a name="
|
|
865
|
-
<div class="line"><a name="
|
|
866
|
-
<div class="line"><a name="
|
|
867
|
-
<div class="line"><a name="
|
|
868
|
-
<div class="line"><a name="
|
|
869
|
-
<div class="line"><a name="
|
|
870
|
-
<div class="line"><a name="
|
|
871
|
-
<div class="line"><a name="
|
|
872
|
-
<div class="line"><a name="
|
|
873
|
-
<div class="line"><a name="
|
|
874
|
-
<div class="line"><a name="
|
|
875
|
-
<div class="line"><a name="
|
|
876
|
-
<div class="line"><a name="
|
|
877
|
-
<div class="line"><a name="
|
|
852
|
+
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#l00766">766</a> of file <a class="el" href="WTO_8h_source.html">WTO.h</a>.</p>
|
|
853
|
+
<div class="fragment"><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  {</div>
|
|
854
|
+
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a1e6c7cb2b79de62cbad8d29980d5cf38">WTOCompRefList</a> partition;</div>
|
|
855
|
+
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> CallICFGNode* callNode = SVFUtil::dyn_cast<CallICFGNode>(node->getICFGNodes().front()))</div>
|
|
856
|
+
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  {</div>
|
|
857
|
+
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <span class="keyword">const</span> CFBasicBlockNode *succ = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad00addfd46be014c35a6ffbc9333d7f3">_graph</a>-><a class="code" href="classSVF_1_1CFBasicBlockGraph.html#a54200b5a7c41c2ba19660da34c295e81">getCFBasicBlockNode</a>(callNode->getRetICFGNode()->getId());</div>
|
|
858
|
+
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c">getCDN</a>(succ) == 0)</div>
|
|
859
|
+
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  {</div>
|
|
860
|
+
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#af7351af6e43b593b9915ed2a2d0d16fb">visit</a>(succ, partition);</div>
|
|
861
|
+
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  }</div>
|
|
862
|
+
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  }</div>
|
|
863
|
+
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <span class="keywordflow">else</span></div>
|
|
864
|
+
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  {</div>
|
|
865
|
+
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node->getOutEdges().begin(), et = node->getOutEdges().end(); it != et; ++it)</div>
|
|
866
|
+
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  {</div>
|
|
867
|
+
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <span class="keywordflow">if</span>((*it)->getICFGEdge() && !(*it)->getICFGEdge()->isIntraCFGEdge()) <span class="keywordflow">continue</span>;</div>
|
|
868
|
+
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <span class="keyword">const</span> CFBasicBlockNode *succ = (*it)->getDstNode();</div>
|
|
869
|
+
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c">getCDN</a>(succ) == 0)</div>
|
|
870
|
+
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  {</div>
|
|
871
|
+
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#af7351af6e43b593b9915ed2a2d0d16fb">visit</a>(succ, partition);</div>
|
|
872
|
+
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  }</div>
|
|
873
|
+
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  }</div>
|
|
874
|
+
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  }</div>
|
|
875
|
+
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <span class="keyword">const</span> CFBasicBlockGWTOCycle *ptr = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a01822119935bdbe665743b13b4f2380e">newCycle</a>(node, partition);</div>
|
|
876
|
+
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ab9fa2e63665b25c8fb771e92dc9b19dc">_headToCycle</a>.emplace(node, ptr);</div>
|
|
877
|
+
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <span class="keywordflow">return</span> ptr;</div>
|
|
878
|
+
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  }</div>
|
|
878
879
|
</div><!-- fragment -->
|
|
879
880
|
</div>
|
|
880
881
|
</div>
|
|
@@ -934,18 +935,18 @@ Friends</h2></td></tr>
|
|
|
934
935
|
|
|
935
936
|
<p>Get the cycle depth number of the given node. </p>
|
|
936
937
|
|
|
937
|
-
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#
|
|
938
|
-
<div class="fragment"><div class="line"><a name="
|
|
939
|
-
<div class="line"><a name="
|
|
940
|
-
<div class="line"><a name="
|
|
941
|
-
<div class="line"><a name="
|
|
942
|
-
<div class="line"><a name="
|
|
943
|
-
<div class="line"><a name="
|
|
944
|
-
<div class="line"><a name="
|
|
945
|
-
<div class="line"><a name="
|
|
946
|
-
<div class="line"><a name="
|
|
947
|
-
<div class="line"><a name="
|
|
948
|
-
<div class="line"><a name="
|
|
938
|
+
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#l00713">713</a> of file <a class="el" href="WTO_8h_source.html">WTO.h</a>.</p>
|
|
939
|
+
<div class="fragment"><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  {</div>
|
|
940
|
+
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a84e542a2dc10c8d7e306b0134c66c02e">_nodeToCDN</a>.find(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
|
|
941
|
+
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a84e542a2dc10c8d7e306b0134c66c02e">_nodeToCDN</a>.end())</div>
|
|
942
|
+
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  {</div>
|
|
943
|
+
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
944
|
+
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  }</div>
|
|
945
|
+
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">else</span></div>
|
|
946
|
+
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  {</div>
|
|
947
|
+
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="keywordflow">return</span> 0;</div>
|
|
948
|
+
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  }</div>
|
|
949
|
+
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  }</div>
|
|
949
950
|
</div><!-- fragment -->
|
|
950
951
|
</div>
|
|
951
952
|
</div>
|
|
@@ -1176,12 +1177,12 @@ Friends</h2></td></tr>
|
|
|
1176
1177
|
</table>
|
|
1177
1178
|
</div><div class="memdoc">
|
|
1178
1179
|
|
|
1179
|
-
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#
|
|
1180
|
-
<div class="fragment"><div class="line"><a name="
|
|
1181
|
-
<div class="line"><a name="
|
|
1182
|
-
<div class="line"><a name="
|
|
1183
|
-
<div class="line"><a name="
|
|
1184
|
-
<div class="line"><a name="
|
|
1180
|
+
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#l00758">758</a> of file <a class="el" href="WTO_8h_source.html">WTO.h</a>.</p>
|
|
1181
|
+
<div class="fragment"><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  {</div>
|
|
1182
|
+
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keyword">const</span> CFBasicBlockGWTOCycle *ptr = <span class="keyword">new</span> CFBasicBlockGWTOCycle(node, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(partition));</div>
|
|
1183
|
+
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ac70fb325200079c4ffee90e1666a3694">_allComponents</a>.insert(ptr);</div>
|
|
1184
|
+
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">return</span> ptr;</div>
|
|
1185
|
+
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  }</div>
|
|
1185
1186
|
</div><!-- fragment -->
|
|
1186
1187
|
</div>
|
|
1187
1188
|
</div>
|
|
@@ -1209,12 +1210,12 @@ Friends</h2></td></tr>
|
|
|
1209
1210
|
</table>
|
|
1210
1211
|
</div><div class="memdoc">
|
|
1211
1212
|
|
|
1212
|
-
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#
|
|
1213
|
-
<div class="fragment"><div class="line"><a name="
|
|
1214
|
-
<div class="line"><a name="
|
|
1215
|
-
<div class="line"><a name="
|
|
1216
|
-
<div class="line"><a name="
|
|
1217
|
-
<div class="line"><a name="
|
|
1213
|
+
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#l00751">751</a> of file <a class="el" href="WTO_8h_source.html">WTO.h</a>.</p>
|
|
1214
|
+
<div class="fragment"><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  {</div>
|
|
1215
|
+
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="keyword">const</span> CFBasicBlockGWTONode *ptr = <span class="keyword">new</span> CFBasicBlockGWTONode(node);</div>
|
|
1216
|
+
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ac70fb325200079c4ffee90e1666a3694">_allComponents</a>.insert(ptr);</div>
|
|
1217
|
+
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <span class="keywordflow">return</span> ptr;</div>
|
|
1218
|
+
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  }</div>
|
|
1218
1219
|
</div><!-- fragment -->
|
|
1219
1220
|
</div>
|
|
1220
1221
|
</div>
|
|
@@ -1295,13 +1296,13 @@ Friends</h2></td></tr>
|
|
|
1295
1296
|
|
|
1296
1297
|
<p>Pop a node from the stack. </p>
|
|
1297
1298
|
|
|
1298
|
-
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#
|
|
1299
|
-
<div class="fragment"><div class="line"><a name="
|
|
1300
|
-
<div class="line"><a name="
|
|
1301
|
-
<div class="line"><a name="
|
|
1302
|
-
<div class="line"><a name="
|
|
1303
|
-
<div class="line"><a name="
|
|
1304
|
-
<div class="line"><a name="
|
|
1299
|
+
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#l00737">737</a> of file <a class="el" href="WTO_8h_source.html">WTO.h</a>.</p>
|
|
1300
|
+
<div class="fragment"><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  {</div>
|
|
1301
|
+
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  assert(!<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a97fb5b5dff4b1b08ee6fb09876630303">_stack</a>.empty() && <span class="stringliteral">"empty stack"</span>);</div>
|
|
1302
|
+
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="keyword">const</span> CFBasicBlockNode *top = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a97fb5b5dff4b1b08ee6fb09876630303">_stack</a>.back();</div>
|
|
1303
|
+
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a97fb5b5dff4b1b08ee6fb09876630303">_stack</a>.pop_back();</div>
|
|
1304
|
+
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">return</span> top;</div>
|
|
1305
|
+
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  }</div>
|
|
1305
1306
|
</div><!-- fragment -->
|
|
1306
1307
|
</div>
|
|
1307
1308
|
</div>
|
|
@@ -1331,10 +1332,10 @@ Friends</h2></td></tr>
|
|
|
1331
1332
|
|
|
1332
1333
|
<p>Push a node on the stack. </p>
|
|
1333
1334
|
|
|
1334
|
-
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#
|
|
1335
|
-
<div class="fragment"><div class="line"><a name="
|
|
1336
|
-
<div class="line"><a name="
|
|
1337
|
-
<div class="line"><a name="
|
|
1335
|
+
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#l00746">746</a> of file <a class="el" href="WTO_8h_source.html">WTO.h</a>.</p>
|
|
1336
|
+
<div class="fragment"><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  {</div>
|
|
1337
|
+
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a97fb5b5dff4b1b08ee6fb09876630303">_stack</a>.push_back(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
|
|
1338
|
+
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  }</div>
|
|
1338
1339
|
</div><!-- fragment -->
|
|
1339
1340
|
</div>
|
|
1340
1341
|
</div>
|
|
@@ -1374,14 +1375,14 @@ Friends</h2></td></tr>
|
|
|
1374
1375
|
|
|
1375
1376
|
<p>Set the cycle depth number of the given node. </p>
|
|
1376
1377
|
|
|
1377
|
-
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#
|
|
1378
|
-
<div class="fragment"><div class="line"><a name="
|
|
1379
|
-
<div class="line"><a name="
|
|
1380
|
-
<div class="line"><a name="
|
|
1381
|
-
<div class="line"><a name="
|
|
1382
|
-
<div class="line"><a name="
|
|
1383
|
-
<div class="line"><a name="
|
|
1384
|
-
<div class="line"><a name="
|
|
1378
|
+
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#l00727">727</a> of file <a class="el" href="WTO_8h_source.html">WTO.h</a>.</p>
|
|
1379
|
+
<div class="fragment"><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  {</div>
|
|
1380
|
+
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="keyword">auto</span> res = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a84e542a2dc10c8d7e306b0134c66c02e">_nodeToCDN</a>.insert(std::make_pair(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, Depth));</div>
|
|
1381
|
+
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">if</span> (!res.second)</div>
|
|
1382
|
+
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  {</div>
|
|
1383
|
+
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  (res.first)->second = Depth;</div>
|
|
1384
|
+
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  }</div>
|
|
1385
|
+
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  }</div>
|
|
1385
1386
|
</div><!-- fragment -->
|
|
1386
1387
|
</div>
|
|
1387
1388
|
</div>
|
|
@@ -1464,78 +1465,79 @@ Friends</h2></td></tr>
|
|
|
1464
1465
|
|
|
1465
1466
|
<p>Main algorithm to build WTO. </p>
|
|
1466
1467
|
|
|
1467
|
-
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#
|
|
1468
|
-
<div class="fragment"><div class="line"><a name="
|
|
1469
|
-
<div class="line"><a name="
|
|
1470
|
-
<div class="line"><a name="
|
|
1471
|
-
<div class="line"><a name="
|
|
1472
|
-
<div class="line"><a name="
|
|
1473
|
-
<div class="line"><a name="
|
|
1474
|
-
<div class="line"><a name="
|
|
1475
|
-
<div class="line"><a name="
|
|
1476
|
-
<div class="line"><a name="
|
|
1477
|
-
<div class="line"><a name="
|
|
1478
|
-
<div class="line"><a name="
|
|
1479
|
-
<div class="line"><a name="
|
|
1480
|
-
<div class="line"><a name="
|
|
1481
|
-
<div class="line"><a name="
|
|
1482
|
-
<div class="line"><a name="
|
|
1483
|
-
<div class="line"><a name="
|
|
1484
|
-
<div class="line"><a name="
|
|
1485
|
-
<div class="line"><a name="
|
|
1486
|
-
<div class="line"><a name="
|
|
1487
|
-
<div class="line"><a name="
|
|
1488
|
-
<div class="line"><a name="
|
|
1489
|
-
<div class="line"><a name="
|
|
1490
|
-
<div class="line"><a name="
|
|
1491
|
-
<div class="line"><a name="
|
|
1492
|
-
<div class="line"><a name="
|
|
1493
|
-
<div class="line"><a name="
|
|
1494
|
-
<div class="line"><a name="
|
|
1495
|
-
<div class="line"><a name="
|
|
1496
|
-
<div class="line"><a name="
|
|
1497
|
-
<div class="line"><a name="
|
|
1498
|
-
<div class="line"><a name="
|
|
1499
|
-
<div class="line"><a name="
|
|
1500
|
-
<div class="line"><a name="
|
|
1501
|
-
<div class="line"><a name="
|
|
1502
|
-
<div class="line"><a name="
|
|
1503
|
-
<div class="line"><a name="
|
|
1504
|
-
<div class="line"><a name="
|
|
1505
|
-
<div class="line"><a name="
|
|
1506
|
-
<div class="line"><a name="
|
|
1507
|
-
<div class="line"><a name="
|
|
1508
|
-
<div class="line"><a name="
|
|
1509
|
-
<div class="line"><a name="
|
|
1510
|
-
<div class="line"><a name="
|
|
1511
|
-
<div class="line"><a name="
|
|
1512
|
-
<div class="line"><a name="
|
|
1513
|
-
<div class="line"><a name="
|
|
1514
|
-
<div class="line"><a name="
|
|
1515
|
-
<div class="line"><a name="
|
|
1516
|
-
<div class="line"><a name="
|
|
1517
|
-
<div class="line"><a name="
|
|
1518
|
-
<div class="line"><a name="
|
|
1519
|
-
<div class="line"><a name="
|
|
1520
|
-
<div class="line"><a name="
|
|
1521
|
-
<div class="line"><a name="
|
|
1522
|
-
<div class="line"><a name="
|
|
1523
|
-
<div class="line"><a name="
|
|
1524
|
-
<div class="line"><a name="
|
|
1525
|
-
<div class="line"><a name="
|
|
1526
|
-
<div class="line"><a name="
|
|
1527
|
-
<div class="line"><a name="
|
|
1528
|
-
<div class="line"><a name="
|
|
1529
|
-
<div class="line"><a name="
|
|
1530
|
-
<div class="line"><a name="
|
|
1531
|
-
<div class="line"><a name="
|
|
1532
|
-
<div class="line"><a name="
|
|
1533
|
-
<div class="line"><a name="
|
|
1534
|
-
<div class="line"><a name="
|
|
1535
|
-
<div class="line"><a name="
|
|
1536
|
-
<div class="line"><a name="
|
|
1537
|
-
<div class="line"><a name="
|
|
1538
|
-
<div class="line"><a name="
|
|
1468
|
+
<p class="definition">Definition at line <a class="el" href="WTO_8h_source.html#l00795">795</a> of file <a class="el" href="WTO_8h_source.html">WTO.h</a>.</p>
|
|
1469
|
+
<div class="fragment"><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  {</div>
|
|
1470
|
+
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a> head(0);</div>
|
|
1471
|
+
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a> min(0);</div>
|
|
1472
|
+
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keywordtype">bool</span> loop;</div>
|
|
1473
|
+
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  </div>
|
|
1474
|
+
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad9665cea2ec92371ecab7e86f7ac2923">push</a>(node);</div>
|
|
1475
|
+
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a6f04a2b3e141e0b4df24ec6cfdf79532">_num</a> += <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a>(1);</div>
|
|
1476
|
+
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  head = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a6f04a2b3e141e0b4df24ec6cfdf79532">_num</a>;</div>
|
|
1477
|
+
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898">setCDN</a>(node, head);</div>
|
|
1478
|
+
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  loop = <span class="keyword">false</span>;</div>
|
|
1479
|
+
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> CallICFGNode* callNode = SVFUtil::dyn_cast<CallICFGNode>(node->getICFGNodes().front()))</div>
|
|
1480
|
+
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  {</div>
|
|
1481
|
+
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keyword">const</span> CFBasicBlockNode *succ = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad00addfd46be014c35a6ffbc9333d7f3">_graph</a>-><a class="code" href="classSVF_1_1CFBasicBlockGraph.html#a54200b5a7c41c2ba19660da34c295e81">getCFBasicBlockNode</a>(callNode->getRetICFGNode()->getId());</div>
|
|
1482
|
+
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <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>
|
|
1483
|
+
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="keywordflow">if</span> (succ_dfn == <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a>(0))</div>
|
|
1484
|
+
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  {</div>
|
|
1485
|
+
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  min = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#af7351af6e43b593b9915ed2a2d0d16fb">visit</a>(succ, partition);</div>
|
|
1486
|
+
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  }</div>
|
|
1487
|
+
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <span class="keywordflow">else</span></div>
|
|
1488
|
+
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  {</div>
|
|
1489
|
+
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  min = succ_dfn;</div>
|
|
1490
|
+
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  }</div>
|
|
1491
|
+
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="keywordflow">if</span> (min <= head)</div>
|
|
1492
|
+
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  {</div>
|
|
1493
|
+
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  head = min;</div>
|
|
1494
|
+
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  loop = <span class="keyword">true</span>;</div>
|
|
1495
|
+
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  }</div>
|
|
1496
|
+
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  }</div>
|
|
1497
|
+
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keywordflow">else</span></div>
|
|
1498
|
+
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  {</div>
|
|
1499
|
+
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node->getOutEdges().begin(), et = node->getOutEdges().end(); it != et; ++it)</div>
|
|
1500
|
+
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  {</div>
|
|
1501
|
+
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="keywordflow">if</span>((*it)->getICFGEdge() && !(*it)->getICFGEdge()->isIntraCFGEdge()) <span class="keywordflow">continue</span>;</div>
|
|
1502
|
+
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keyword">const</span> CFBasicBlockNode *succ = (*it)->getDstNode();</div>
|
|
1503
|
+
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordflow">if</span> (succ->getFunction() != node->getFunction())</div>
|
|
1504
|
+
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <span class="keywordflow">continue</span>;</div>
|
|
1505
|
+
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <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>
|
|
1506
|
+
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <span class="keywordflow">if</span> (succ_dfn == <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a>(0))</div>
|
|
1507
|
+
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  {</div>
|
|
1508
|
+
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  min = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#af7351af6e43b593b9915ed2a2d0d16fb">visit</a>(succ, partition);</div>
|
|
1509
|
+
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  }</div>
|
|
1510
|
+
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="keywordflow">else</span></div>
|
|
1511
|
+
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  {</div>
|
|
1512
|
+
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  min = succ_dfn;</div>
|
|
1513
|
+
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  }</div>
|
|
1514
|
+
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="keywordflow">if</span> (min <= head)</div>
|
|
1515
|
+
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  {</div>
|
|
1516
|
+
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  head = min;</div>
|
|
1517
|
+
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  loop = <span class="keyword">true</span>;</div>
|
|
1518
|
+
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  }</div>
|
|
1519
|
+
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  }</div>
|
|
1520
|
+
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  }</div>
|
|
1521
|
+
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <span class="keywordflow">if</span> (head == <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c">getCDN</a>(node))</div>
|
|
1522
|
+
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  {</div>
|
|
1523
|
+
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898">setCDN</a>(node, UINT_MAX);</div>
|
|
1524
|
+
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <span class="keyword">const</span> CFBasicBlockNode *element = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad8d9315b18c019bada948380f8a4bb35">pop</a>();</div>
|
|
1525
|
+
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <span class="keywordflow">if</span> (loop)</div>
|
|
1526
|
+
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  {</div>
|
|
1527
|
+
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="keywordflow">while</span> (element != node)</div>
|
|
1528
|
+
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  {</div>
|
|
1529
|
+
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898">setCDN</a>(element, 0);</div>
|
|
1530
|
+
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  element = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad8d9315b18c019bada948380f8a4bb35">pop</a>();</div>
|
|
1531
|
+
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  }</div>
|
|
1532
|
+
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  partition.push_front(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a9dd4ed2f3347d529163a60e0386ea11d">component</a>(node));</div>
|
|
1533
|
+
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  }</div>
|
|
1534
|
+
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">else</span></div>
|
|
1535
|
+
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  {</div>
|
|
1536
|
+
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  partition.push_front(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#acab6d0c92dc8e03a97cc78b060a624c4">newNode</a>(node));</div>
|
|
1537
|
+
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  }</div>
|
|
1538
|
+
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  }</div>
|
|
1539
|
+
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  <span class="keywordflow">return</span> head;</div>
|
|
1540
|
+
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  }</div>
|
|
1539
1541
|
</div><!-- fragment -->
|
|
1540
1542
|
</div>
|
|
1541
1543
|
</div>
|
|
@@ -1809,31 +1811,31 @@ Friends</h2></td></tr>
|
|
|
1809
1811
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a84e542a2dc10c8d7e306b0134c66c02e"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a84e542a2dc10c8d7e306b0134c66c02e">SVF::CFBasicBlockGWTO::_nodeToCDN</a></div><div class="ttdeci">NodeRefToCycleDepthNumber _nodeToCDN</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00492">WTO.h:492</a></div></div>
|
|
1810
1812
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a47b0a759cac2b4264b8c01dbe9f1c63f"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a47b0a759cac2b4264b8c01dbe9f1c63f">SVF::CFBasicBlockGWTO::getWTOCycleDepth</a></div><div class="ttdeci">const CFBasicBlockGWTOCycleDepth & getWTOCycleDepth(const CFBasicBlockNode *n) const</div><div class="ttdoc">Get the wto-cycle-depth of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00555">WTO.h:555</a></div></div>
|
|
1811
1813
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a1e6c7cb2b79de62cbad8d29980d5cf38"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a1e6c7cb2b79de62cbad8d29980d5cf38">SVF::CFBasicBlockGWTO::WTOCompRefList</a></div><div class="ttdeci">std::list< const CFBasicBlockGWTOComp * > WTOCompRefList</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00472">WTO.h:472</a></div></div>
|
|
1812
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a0f3ba7dd8271cf960bba22a4dc38d02c"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c">SVF::CFBasicBlockGWTO::getCDN</a></div><div class="ttdeci">CycleDepthNumber getCDN(const CFBasicBlockNode *n) const</div><div class="ttdoc">Get the cycle depth number of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#
|
|
1814
|
+
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a0f3ba7dd8271cf960bba22a4dc38d02c"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c">SVF::CFBasicBlockGWTO::getCDN</a></div><div class="ttdeci">CycleDepthNumber getCDN(const CFBasicBlockNode *n) const</div><div class="ttdoc">Get the cycle depth number of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00713">WTO.h:713</a></div></div>
|
|
1813
1815
|
<div class="ttc" id="acJSON_8cpp_html_ab6e2ea6dc7bd57d1483413449998230a"><div class="ttname"><a href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a></div><div class="ttdeci">cJSON * n</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02558">cJSON.cpp:2558</a></div></div>
|
|
1814
1816
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a6f04a2b3e141e0b4df24ec6cfdf79532"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a6f04a2b3e141e0b4df24ec6cfdf79532">SVF::CFBasicBlockGWTO::_num</a></div><div class="ttdeci">CycleDepthNumber _num</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00493">WTO.h:493</a></div></div>
|
|
1815
1817
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_ab9fa2e63665b25c8fb771e92dc9b19dc"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#ab9fa2e63665b25c8fb771e92dc9b19dc">SVF::CFBasicBlockGWTO::_headToCycle</a></div><div class="ttdeci">NodeRefToWTOCycleMap _headToCycle</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00489">WTO.h:489</a></div></div>
|
|
1816
1818
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_add361ba0493a8fc9e9b08a4076a8e171"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#add361ba0493a8fc9e9b08a4076a8e171">SVF::CFBasicBlockGWTO::_components</a></div><div class="ttdeci">WTOCompRefList _components</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00487">WTO.h:487</a></div></div>
|
|
1817
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a01822119935bdbe665743b13b4f2380e"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a01822119935bdbe665743b13b4f2380e">SVF::CFBasicBlockGWTO::newCycle</a></div><div class="ttdeci">const CFBasicBlockGWTOCycle * newCycle(const CFBasicBlockNode *node, const WTOCompRefList &partition)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#
|
|
1819
|
+
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a01822119935bdbe665743b13b4f2380e"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a01822119935bdbe665743b13b4f2380e">SVF::CFBasicBlockGWTO::newCycle</a></div><div class="ttdeci">const CFBasicBlockGWTOCycle * newCycle(const CFBasicBlockNode *node, const WTOCompRefList &partition)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00758">WTO.h:758</a></div></div>
|
|
1818
1820
|
<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>
|
|
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#
|
|
1821
|
+
<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#l00746">WTO.h:746</a></div></div>
|
|
1820
1822
|
<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>
|
|
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#
|
|
1823
|
+
<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#l00870">WTO.h:870</a></div></div>
|
|
1822
1824
|
<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>
|
|
1823
1825
|
<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>
|
|
1824
1826
|
<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>
|
|
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#
|
|
1827
|
+
<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#l00880">WTO.h:880</a></div></div>
|
|
1826
1828
|
<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< T >::type && move(T &&t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00621">SVFUtil.h:621</a></div></div>
|
|
1827
1829
|
<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>
|
|
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#
|
|
1829
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_acab6d0c92dc8e03a97cc78b060a624c4"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#acab6d0c92dc8e03a97cc78b060a624c4">SVF::CFBasicBlockGWTO::newNode</a></div><div class="ttdeci">const CFBasicBlockGWTONode * newNode(const CFBasicBlockNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#
|
|
1830
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a49d0128828b44df0a8631dd193ed8898"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898">SVF::CFBasicBlockGWTO::setCDN</a></div><div class="ttdeci">void setCDN(const CFBasicBlockNode *n, const CycleDepthNumber &Depth)</div><div class="ttdoc">Set the cycle depth number of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#
|
|
1831
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a9dd4ed2f3347d529163a60e0386ea11d"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a9dd4ed2f3347d529163a60e0386ea11d">SVF::CFBasicBlockGWTO::component</a></div><div class="ttdeci">const CFBasicBlockGWTOCycle * component(const CFBasicBlockNode *node)</div><div class="ttdoc">Create the cycle component for the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#
|
|
1830
|
+
<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#l00737">WTO.h:737</a></div></div>
|
|
1831
|
+
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_acab6d0c92dc8e03a97cc78b060a624c4"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#acab6d0c92dc8e03a97cc78b060a624c4">SVF::CFBasicBlockGWTO::newNode</a></div><div class="ttdeci">const CFBasicBlockGWTONode * newNode(const CFBasicBlockNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00751">WTO.h:751</a></div></div>
|
|
1832
|
+
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a49d0128828b44df0a8631dd193ed8898"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898">SVF::CFBasicBlockGWTO::setCDN</a></div><div class="ttdeci">void setCDN(const CFBasicBlockNode *n, const CycleDepthNumber &Depth)</div><div class="ttdoc">Set the cycle depth number of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00727">WTO.h:727</a></div></div>
|
|
1833
|
+
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a9dd4ed2f3347d529163a60e0386ea11d"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a9dd4ed2f3347d529163a60e0386ea11d">SVF::CFBasicBlockGWTO::component</a></div><div class="ttdeci">const CFBasicBlockGWTOCycle * component(const CFBasicBlockNode *node)</div><div class="ttdoc">Create the cycle component for the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00766">WTO.h:766</a></div></div>
|
|
1832
1834
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_ad00addfd46be014c35a6ffbc9333d7f3"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#ad00addfd46be014c35a6ffbc9333d7f3">SVF::CFBasicBlockGWTO::_graph</a></div><div class="ttdeci">CFBasicBlockGraph * _graph</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00495">WTO.h:495</a></div></div>
|
|
1833
1835
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_ada96b743fb0fd92f5f2c539130404187"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#ada96b743fb0fd92f5f2c539130404187">SVF::CFBasicBlockGWTO::_nodeToDepth</a></div><div class="ttdeci">NodeRefToWTOCycleDepthPtr _nodeToDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00491">WTO.h:491</a></div></div>
|
|
1834
1836
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_ab4049975aad5b59c31bb5501ff7465c8"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#ab4049975aad5b59c31bb5501ff7465c8">SVF::CFBasicBlockGWTO::CFBasicBlockGWTO</a></div><div class="ttdeci">CFBasicBlockGWTO()</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00498">WTO.h:498</a></div></div>
|
|
1835
1837
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_ad915ed46be9ae3dbd7ee8227c0dee40d"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#ad915ed46be9ae3dbd7ee8227c0dee40d">SVF::CFBasicBlockGWTO::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00526">WTO.h:526</a></div></div>
|
|
1836
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_af7351af6e43b593b9915ed2a2d0d16fb"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#af7351af6e43b593b9915ed2a2d0d16fb">SVF::CFBasicBlockGWTO::visit</a></div><div class="ttdeci">virtual CycleDepthNumber visit(const CFBasicBlockNode *node, WTOCompRefList &partition)</div><div class="ttdoc">Main algorithm to build WTO.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#
|
|
1838
|
+
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_af7351af6e43b593b9915ed2a2d0d16fb"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#af7351af6e43b593b9915ed2a2d0d16fb">SVF::CFBasicBlockGWTO::visit</a></div><div class="ttdeci">virtual CycleDepthNumber visit(const CFBasicBlockNode *node, WTOCompRefList &partition)</div><div class="ttdoc">Main algorithm to build WTO.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00795">WTO.h:795</a></div></div>
|
|
1837
1839
|
<!-- start footer part -->
|
|
1838
1840
|
<hr class="footer"/><address class="footer"><small>
|
|
1839
1841
|
Generated by  <a href="http://www.doxygen.org/index.html">
|