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
|
@@ -658,203 +658,206 @@ $(function() {
|
|
|
658
658
|
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  {</div>
|
|
659
659
|
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &edge: node.<a class="code" href="classSVF_1_1CFBasicBlockGWTONode.html#ab0b71fd36e24dcc7ff4f5489a5ee1444">node</a>()-><a class="code" href="classSVF_1_1CFBasicBlockNode.html#a48c0b6643c481afb15d4c4f89d00eecb">getOutEdges</a>())</div>
|
|
660
660
|
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  {</div>
|
|
661
|
-
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <span class="
|
|
662
|
-
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keyword">const</span> <a class="code" href="
|
|
663
|
-
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="
|
|
664
|
-
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> 
|
|
665
|
-
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> 
|
|
666
|
-
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> 
|
|
667
|
-
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> 
|
|
668
|
-
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> 
|
|
669
|
-
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> 
|
|
670
|
-
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> 
|
|
671
|
-
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> 
|
|
672
|
-
<div class="line"><a name="
|
|
673
|
-
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="keyword">
|
|
674
|
-
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> 
|
|
675
|
-
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> 
|
|
676
|
-
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <
|
|
677
|
-
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> 
|
|
678
|
-
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> 
|
|
679
|
-
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> 
|
|
680
|
-
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> 
|
|
681
|
-
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> 
|
|
682
|
-
<div class="line"><a name="
|
|
683
|
-
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> 
|
|
684
|
-
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> 
|
|
685
|
-
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="
|
|
686
|
-
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> 
|
|
687
|
-
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> 
|
|
688
|
-
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> 
|
|
689
|
-
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> 
|
|
690
|
-
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> 
|
|
691
|
-
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> 
|
|
692
|
-
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> 
|
|
693
|
-
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> 
|
|
694
|
-
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> 
|
|
695
|
-
<div class="line"><a name="
|
|
696
|
-
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> 
|
|
697
|
-
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> 
|
|
698
|
-
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="
|
|
699
|
-
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> 
|
|
700
|
-
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> 
|
|
701
|
-
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> 
|
|
702
|
-
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> 
|
|
703
|
-
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> 
|
|
704
|
-
<div class="line"><a name="
|
|
705
|
-
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> 
|
|
706
|
-
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> 
|
|
707
|
-
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> 
|
|
708
|
-
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a97fb5b5dff4b1b08ee6fb09876630303">_stack</a>.
|
|
709
|
-
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <
|
|
710
|
-
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> 
|
|
711
|
-
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> 
|
|
712
|
-
<div class="line"><a name="
|
|
713
|
-
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> 
|
|
714
|
-
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> 
|
|
715
|
-
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> 
|
|
716
|
-
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> 
|
|
717
|
-
<div class="line"><a name="l00750"></a><span class="lineno"
|
|
718
|
-
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> 
|
|
719
|
-
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> 
|
|
720
|
-
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <a class="code" href="
|
|
721
|
-
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <
|
|
722
|
-
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> 
|
|
723
|
-
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> 
|
|
724
|
-
<div class="line"><a name="l00757"></a><span class="lineno"
|
|
725
|
-
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> 
|
|
726
|
-
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> 
|
|
727
|
-
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <a class="code" href="
|
|
728
|
-
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <
|
|
729
|
-
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> 
|
|
730
|
-
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> 
|
|
731
|
-
<div class="line"><a name="
|
|
732
|
-
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> 
|
|
733
|
-
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> 
|
|
734
|
-
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <
|
|
735
|
-
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> 
|
|
736
|
-
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> 
|
|
737
|
-
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <span class="
|
|
738
|
-
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> 
|
|
739
|
-
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> 
|
|
740
|
-
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> 
|
|
741
|
-
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> 
|
|
742
|
-
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> 
|
|
743
|
-
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> 
|
|
744
|
-
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> 
|
|
745
|
-
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> 
|
|
746
|
-
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> 
|
|
747
|
-
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <span class="keywordflow">if</span> (<
|
|
748
|
-
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> 
|
|
749
|
-
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> 
|
|
750
|
-
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> 
|
|
751
|
-
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> 
|
|
752
|
-
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> 
|
|
753
|
-
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> 
|
|
754
|
-
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> 
|
|
755
|
-
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <span class="
|
|
756
|
-
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> 
|
|
757
|
-
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  </div>
|
|
758
|
-
<div class="line"><a name="
|
|
759
|
-
<div class="line"><a name="
|
|
760
|
-
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> 
|
|
761
|
-
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> 
|
|
762
|
-
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <
|
|
763
|
-
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  </div>
|
|
764
|
-
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <
|
|
765
|
-
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> 
|
|
766
|
-
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> 
|
|
767
|
-
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#
|
|
768
|
-
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> 
|
|
769
|
-
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <
|
|
770
|
-
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> 
|
|
771
|
-
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> 
|
|
772
|
-
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> 
|
|
773
|
-
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="
|
|
774
|
-
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> 
|
|
775
|
-
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> 
|
|
776
|
-
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> 
|
|
777
|
-
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> 
|
|
778
|
-
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> 
|
|
779
|
-
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> 
|
|
780
|
-
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> 
|
|
781
|
-
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> 
|
|
782
|
-
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> 
|
|
783
|
-
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> 
|
|
784
|
-
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> 
|
|
785
|
-
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> 
|
|
786
|
-
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> 
|
|
787
|
-
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> 
|
|
788
|
-
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> 
|
|
789
|
-
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> 
|
|
790
|
-
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> 
|
|
791
|
-
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> 
|
|
792
|
-
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> 
|
|
793
|
-
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> 
|
|
794
|
-
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <
|
|
795
|
-
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordflow">if</span> (
|
|
796
|
-
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> 
|
|
797
|
-
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> 
|
|
798
|
-
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> 
|
|
799
|
-
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> 
|
|
800
|
-
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> 
|
|
801
|
-
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> 
|
|
802
|
-
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> 
|
|
803
|
-
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> 
|
|
804
|
-
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> 
|
|
805
|
-
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> 
|
|
806
|
-
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> 
|
|
807
|
-
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> 
|
|
808
|
-
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> 
|
|
809
|
-
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> 
|
|
810
|
-
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span> 
|
|
811
|
-
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> 
|
|
812
|
-
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> 
|
|
813
|
-
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> 
|
|
814
|
-
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> 
|
|
815
|
-
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> 
|
|
816
|
-
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> 
|
|
817
|
-
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> 
|
|
818
|
-
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> 
|
|
819
|
-
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> 
|
|
820
|
-
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> 
|
|
821
|
-
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> 
|
|
822
|
-
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> 
|
|
823
|
-
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> 
|
|
824
|
-
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> 
|
|
825
|
-
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> 
|
|
826
|
-
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> 
|
|
827
|
-
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> 
|
|
828
|
-
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> 
|
|
829
|
-
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> 
|
|
830
|
-
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> 
|
|
831
|
-
<div class="line"><a name="
|
|
832
|
-
<div class="line"><a name="
|
|
833
|
-
<div class="line"><a name="
|
|
834
|
-
<div class="line"><a name="l00870"></a><span class="lineno"
|
|
835
|
-
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> 
|
|
836
|
-
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> 
|
|
837
|
-
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> 
|
|
838
|
-
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> 
|
|
839
|
-
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> 
|
|
840
|
-
<div class="line"><a name="
|
|
841
|
-
<div class="line"><a name="
|
|
842
|
-
<div class="line"><a name="
|
|
843
|
-
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> 
|
|
844
|
-
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> 
|
|
845
|
-
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> 
|
|
846
|
-
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> 
|
|
847
|
-
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> 
|
|
848
|
-
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> 
|
|
849
|
-
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> 
|
|
850
|
-
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> 
|
|
851
|
-
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> 
|
|
852
|
-
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> 
|
|
853
|
-
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  </div>
|
|
854
|
-
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> }
|
|
855
|
-
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> 
|
|
856
|
-
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> 
|
|
857
|
-
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> 
|
|
661
|
+
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <span class="keywordflow">if</span>(edge->getICFGEdge() && !edge->getICFGEdge()->isIntraCFGEdge()) <span class="keywordflow">continue</span>;</div>
|
|
662
|
+
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *succ = edge->getDstNode();</div>
|
|
663
|
+
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">CFBasicBlockGWTOCycleDepth</a> &succNesting = <a class="code" href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#a0efb4902bc6933e28b042edf6fc3f94c">getWTOCycleDepth</a>(succ);</div>
|
|
664
|
+
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="keywordflow">if</span> (succ != <a class="code" href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#ae846777ace039ab74fad15ee52884f44">_head</a> && succNesting <= <a class="code" href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#a27e3f03587ce871f41853e3be2537209">_headWTOCycleDepth</a>)</div>
|
|
665
|
+
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  {</div>
|
|
666
|
+
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#a6328b869dd664d4eca8e13c4dae3703b">_tails</a>.insert(node.<a class="code" href="classSVF_1_1CFBasicBlockGWTONode.html#ab0b71fd36e24dcc7ff4f5489a5ee1444">node</a>());</div>
|
|
667
|
+
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  }</div>
|
|
668
|
+
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  }</div>
|
|
669
|
+
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  }</div>
|
|
670
|
+
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  }</div>
|
|
671
|
+
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  </div>
|
|
672
|
+
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="keyword">protected</span>:</div>
|
|
673
|
+
<div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#a0efb4902bc6933e28b042edf6fc3f94c"> 702</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">CFBasicBlockGWTOCycleDepth</a> &<a class="code" href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#a0efb4902bc6933e28b042edf6fc3f94c">getWTOCycleDepth</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div>
|
|
674
|
+
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="keyword"> </span>{</div>
|
|
675
|
+
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#a0a06c8bb53552030d11398955eae665c">_nodeToWTOCycleDepth</a>.find(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
|
|
676
|
+
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  assert(it != <a class="code" href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#a0a06c8bb53552030d11398955eae665c">_nodeToWTOCycleDepth</a>.end() && <span class="stringliteral">"node not found"</span>);</div>
|
|
677
|
+
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <span class="keywordflow">return</span> *(it->second);</div>
|
|
678
|
+
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  }</div>
|
|
679
|
+
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  </div>
|
|
680
|
+
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  };</div>
|
|
681
|
+
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  </div>
|
|
682
|
+
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="keyword">protected</span>:</div>
|
|
683
|
+
<div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c"> 713</a></span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a0f3ba7dd8271cf960bba22a4dc38d02c">getCDN</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div>
|
|
684
|
+
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="keyword"> </span>{</div>
|
|
685
|
+
<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>
|
|
686
|
+
<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>
|
|
687
|
+
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  {</div>
|
|
688
|
+
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
689
|
+
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  }</div>
|
|
690
|
+
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">else</span></div>
|
|
691
|
+
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  {</div>
|
|
692
|
+
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="keywordflow">return</span> 0;</div>
|
|
693
|
+
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  }</div>
|
|
694
|
+
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  }</div>
|
|
695
|
+
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  </div>
|
|
696
|
+
<div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898"> 727</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a49d0128828b44df0a8631dd193ed8898">setCDN</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a> &Depth)</div>
|
|
697
|
+
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  {</div>
|
|
698
|
+
<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>
|
|
699
|
+
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">if</span> (!res.second)</div>
|
|
700
|
+
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  {</div>
|
|
701
|
+
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  (res.first)->second = Depth;</div>
|
|
702
|
+
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  }</div>
|
|
703
|
+
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  }</div>
|
|
704
|
+
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  </div>
|
|
705
|
+
<div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#ad8d9315b18c019bada948380f8a4bb35"> 737</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad8d9315b18c019bada948380f8a4bb35">pop</a>()</div>
|
|
706
|
+
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  {</div>
|
|
707
|
+
<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>
|
|
708
|
+
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *top = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a97fb5b5dff4b1b08ee6fb09876630303">_stack</a>.back();</div>
|
|
709
|
+
<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>
|
|
710
|
+
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">return</span> top;</div>
|
|
711
|
+
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  }</div>
|
|
712
|
+
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  </div>
|
|
713
|
+
<div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#ad9665cea2ec92371ecab7e86f7ac2923"> 746</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad9665cea2ec92371ecab7e86f7ac2923">push</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div>
|
|
714
|
+
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  {</div>
|
|
715
|
+
<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>
|
|
716
|
+
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  }</div>
|
|
717
|
+
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  </div>
|
|
718
|
+
<div class="line"><a name="l00751"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#acab6d0c92dc8e03a97cc78b060a624c4"> 751</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTONode.html">CFBasicBlockGWTONode</a> *<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#acab6d0c92dc8e03a97cc78b060a624c4">newNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *node)</div>
|
|
719
|
+
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  {</div>
|
|
720
|
+
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTONode.html">CFBasicBlockGWTONode</a> *ptr = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTONode.html">CFBasicBlockGWTONode</a>(node);</div>
|
|
721
|
+
<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>
|
|
722
|
+
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <span class="keywordflow">return</span> ptr;</div>
|
|
723
|
+
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  }</div>
|
|
724
|
+
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  </div>
|
|
725
|
+
<div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#a01822119935bdbe665743b13b4f2380e"> 758</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTOCycle.html">CFBasicBlockGWTOCycle</a> *<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a01822119935bdbe665743b13b4f2380e">newCycle</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *node, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a1e6c7cb2b79de62cbad8d29980d5cf38">WTOCompRefList</a> &partition)</div>
|
|
726
|
+
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  {</div>
|
|
727
|
+
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTOCycle.html">CFBasicBlockGWTOCycle</a> *ptr = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTOCycle.html">CFBasicBlockGWTOCycle</a>(node, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(partition));</div>
|
|
728
|
+
<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>
|
|
729
|
+
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">return</span> ptr;</div>
|
|
730
|
+
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  }</div>
|
|
731
|
+
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  </div>
|
|
732
|
+
<div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#a9dd4ed2f3347d529163a60e0386ea11d"> 766</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTOCycle.html">CFBasicBlockGWTOCycle</a> *<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a9dd4ed2f3347d529163a60e0386ea11d">component</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *node)</div>
|
|
733
|
+
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  {</div>
|
|
734
|
+
<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>
|
|
735
|
+
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callNode = SVFUtil::dyn_cast<CallICFGNode>(node-><a class="code" href="classSVF_1_1CFBasicBlockNode.html#afdad57a83c392a8b14b838ecb58f9ff7">getICFGNodes</a>().front()))</div>
|
|
736
|
+
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  {</div>
|
|
737
|
+
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *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>
|
|
738
|
+
<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>
|
|
739
|
+
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  {</div>
|
|
740
|
+
<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>
|
|
741
|
+
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  }</div>
|
|
742
|
+
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  }</div>
|
|
743
|
+
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <span class="keywordflow">else</span></div>
|
|
744
|
+
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  {</div>
|
|
745
|
+
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node-><a class="code" href="classSVF_1_1CFBasicBlockNode.html#a48c0b6643c481afb15d4c4f89d00eecb">getOutEdges</a>().begin(), et = node-><a class="code" href="classSVF_1_1CFBasicBlockNode.html#a48c0b6643c481afb15d4c4f89d00eecb">getOutEdges</a>().end(); it != et; ++it)</div>
|
|
746
|
+
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  {</div>
|
|
747
|
+
<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>
|
|
748
|
+
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *succ = (*it)->getDstNode();</div>
|
|
749
|
+
<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>
|
|
750
|
+
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  {</div>
|
|
751
|
+
<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>
|
|
752
|
+
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  }</div>
|
|
753
|
+
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  }</div>
|
|
754
|
+
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  }</div>
|
|
755
|
+
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTOCycle.html">CFBasicBlockGWTOCycle</a> *ptr = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a01822119935bdbe665743b13b4f2380e">newCycle</a>(node, partition);</div>
|
|
756
|
+
<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>
|
|
757
|
+
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <span class="keywordflow">return</span> ptr;</div>
|
|
758
|
+
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  }</div>
|
|
759
|
+
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  </div>
|
|
760
|
+
<div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#af7351af6e43b593b9915ed2a2d0d16fb"> 795</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#af7351af6e43b593b9915ed2a2d0d16fb">visit</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *node, <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a1e6c7cb2b79de62cbad8d29980d5cf38">WTOCompRefList</a> &partition)</div>
|
|
761
|
+
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  {</div>
|
|
762
|
+
<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>
|
|
763
|
+
<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>
|
|
764
|
+
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keywordtype">bool</span> loop;</div>
|
|
765
|
+
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  </div>
|
|
766
|
+
<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>
|
|
767
|
+
<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>
|
|
768
|
+
<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>
|
|
769
|
+
<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>
|
|
770
|
+
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  loop = <span class="keyword">false</span>;</div>
|
|
771
|
+
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callNode = SVFUtil::dyn_cast<CallICFGNode>(node-><a class="code" href="classSVF_1_1CFBasicBlockNode.html#afdad57a83c392a8b14b838ecb58f9ff7">getICFGNodes</a>().front()))</div>
|
|
772
|
+
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  {</div>
|
|
773
|
+
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *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>
|
|
774
|
+
<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>
|
|
775
|
+
<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>
|
|
776
|
+
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  {</div>
|
|
777
|
+
<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>
|
|
778
|
+
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  }</div>
|
|
779
|
+
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <span class="keywordflow">else</span></div>
|
|
780
|
+
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  {</div>
|
|
781
|
+
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  min = succ_dfn;</div>
|
|
782
|
+
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  }</div>
|
|
783
|
+
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="keywordflow">if</span> (min <= head)</div>
|
|
784
|
+
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  {</div>
|
|
785
|
+
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  head = min;</div>
|
|
786
|
+
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  loop = <span class="keyword">true</span>;</div>
|
|
787
|
+
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  }</div>
|
|
788
|
+
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  }</div>
|
|
789
|
+
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keywordflow">else</span></div>
|
|
790
|
+
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  {</div>
|
|
791
|
+
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node-><a class="code" href="classSVF_1_1CFBasicBlockNode.html#a48c0b6643c481afb15d4c4f89d00eecb">getOutEdges</a>().begin(), et = node-><a class="code" href="classSVF_1_1CFBasicBlockNode.html#a48c0b6643c481afb15d4c4f89d00eecb">getOutEdges</a>().end(); it != et; ++it)</div>
|
|
792
|
+
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  {</div>
|
|
793
|
+
<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>
|
|
794
|
+
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *succ = (*it)->getDstNode();</div>
|
|
795
|
+
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordflow">if</span> (succ-><a class="code" href="classSVF_1_1CFBasicBlockNode.html#ad8afed175964dc0b90f98dbf68fdf1c8">getFunction</a>() != node-><a class="code" href="classSVF_1_1CFBasicBlockNode.html#ad8afed175964dc0b90f98dbf68fdf1c8">getFunction</a>())</div>
|
|
796
|
+
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <span class="keywordflow">continue</span>;</div>
|
|
797
|
+
<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>
|
|
798
|
+
<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>
|
|
799
|
+
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  {</div>
|
|
800
|
+
<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>
|
|
801
|
+
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  }</div>
|
|
802
|
+
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="keywordflow">else</span></div>
|
|
803
|
+
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  {</div>
|
|
804
|
+
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  min = succ_dfn;</div>
|
|
805
|
+
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  }</div>
|
|
806
|
+
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="keywordflow">if</span> (min <= head)</div>
|
|
807
|
+
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  {</div>
|
|
808
|
+
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  head = min;</div>
|
|
809
|
+
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  loop = <span class="keyword">true</span>;</div>
|
|
810
|
+
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  }</div>
|
|
811
|
+
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  }</div>
|
|
812
|
+
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  }</div>
|
|
813
|
+
<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>
|
|
814
|
+
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  {</div>
|
|
815
|
+
<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>
|
|
816
|
+
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <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>
|
|
817
|
+
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <span class="keywordflow">if</span> (loop)</div>
|
|
818
|
+
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  {</div>
|
|
819
|
+
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="keywordflow">while</span> (element != node)</div>
|
|
820
|
+
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  {</div>
|
|
821
|
+
<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>
|
|
822
|
+
<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>
|
|
823
|
+
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  }</div>
|
|
824
|
+
<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>
|
|
825
|
+
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  }</div>
|
|
826
|
+
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">else</span></div>
|
|
827
|
+
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  {</div>
|
|
828
|
+
<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>
|
|
829
|
+
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  }</div>
|
|
830
|
+
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  }</div>
|
|
831
|
+
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  <span class="keywordflow">return</span> head;</div>
|
|
832
|
+
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  }</div>
|
|
833
|
+
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  </div>
|
|
834
|
+
<div class="line"><a name="l00870"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#a50fa3b82172788c5e963d723b27900ba"> 870</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a50fa3b82172788c5e963d723b27900ba">buildNodeToWTOCycleDepth</a>()</div>
|
|
835
|
+
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  {</div>
|
|
836
|
+
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <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>
|
|
837
|
+
<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>
|
|
838
|
+
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  {</div>
|
|
839
|
+
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  (*it)->accept(&builder);</div>
|
|
840
|
+
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  }</div>
|
|
841
|
+
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  }</div>
|
|
842
|
+
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  </div>
|
|
843
|
+
<div class="line"><a name="l00880"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#a371c7416c88df3c0b70addf9b88b305a"> 880</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a371c7416c88df3c0b70addf9b88b305a">build_tails</a>()</div>
|
|
844
|
+
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  {</div>
|
|
845
|
+
<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>
|
|
846
|
+
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  {</div>
|
|
847
|
+
<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>
|
|
848
|
+
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  <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>
|
|
849
|
+
<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>
|
|
850
|
+
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  {</div>
|
|
851
|
+
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  (*it)->accept(&builder);</div>
|
|
852
|
+
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  }</div>
|
|
853
|
+
<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>
|
|
854
|
+
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  }</div>
|
|
855
|
+
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  }</div>
|
|
856
|
+
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  </div>
|
|
857
|
+
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> }; <span class="comment">// end class CFBasicBlockGWTO</span></div>
|
|
858
|
+
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  </div>
|
|
859
|
+
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> } <span class="comment">// end namespace SVF</span></div>
|
|
860
|
+
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> <span class="preprocessor">#endif </span><span class="comment">/* WTO_H_ */</span><span class="preprocessor"></span></div>
|
|
858
861
|
</div><!-- fragment --></div><!-- contents -->
|
|
859
862
|
<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>
|
|
860
863
|
<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>
|
|
@@ -885,10 +888,10 @@ $(function() {
|
|
|
885
888
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_1_1TailBuilder_html_a0a06c8bb53552030d11398955eae665c"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#a0a06c8bb53552030d11398955eae665c">SVF::CFBasicBlockGWTO::TailBuilder::_nodeToWTOCycleDepth</a></div><div class="ttdeci">NodeRefToWTOCycleDepthPtr & _nodeToWTOCycleDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00655">WTO.h:655</a></div></div>
|
|
886
889
|
<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>
|
|
887
890
|
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_ada537f89b6cc8d5d2cb5064e2c5b1b0d"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#ada537f89b6cc8d5d2cb5064e2c5b1b0d">SVF::WTOCycleDepth::operator<<</a></div><div class="ttdeci">friend std::ostream & operator<<(std::ostream &o, const WTOCycleDepth &CFBasicBlockGWTO)</div><div class="ttdoc">Dump into CMD.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00238">WTO.h:238</a></div></div>
|
|
888
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_1_1TailBuilder_html_a0efb4902bc6933e28b042edf6fc3f94c"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#a0efb4902bc6933e28b042edf6fc3f94c">SVF::CFBasicBlockGWTO::TailBuilder::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#
|
|
891
|
+
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_1_1TailBuilder_html_a0efb4902bc6933e28b042edf6fc3f94c"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#a0efb4902bc6933e28b042edf6fc3f94c">SVF::CFBasicBlockGWTO::TailBuilder::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#l00702">WTO.h:702</a></div></div>
|
|
889
892
|
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a7f3412aaf5948741e4c5cdbaff728101"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a7f3412aaf5948741e4c5cdbaff728101">SVF::WTOCycleDepth::WTOCycleDepth</a></div><div class="ttdeci">WTOCycleDepth()=default</div><div class="ttdoc">Default Constructor.</div></div>
|
|
890
893
|
<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>
|
|
891
|
-
<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#
|
|
894
|
+
<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>
|
|
892
895
|
<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>
|
|
893
896
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_1_1WTOCycleDepthBuilder_html_adc313cc9a42ae663f0c018da128b77f6"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO_1_1WTOCycleDepthBuilder.html#adc313cc9a42ae663f0c018da128b77f6">SVF::CFBasicBlockGWTO::WTOCycleDepthBuilder::WTOCycleDepthBuilder</a></div><div class="ttdeci">WTOCycleDepthBuilder(NodeRefToWTOCycleDepthPtr &nodeToWTOCycleDepth)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00622">WTO.h:622</a></div></div>
|
|
894
897
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_ae675544cc2cfc61ef9e37c4f20fa6109"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#ae675544cc2cfc61ef9e37c4f20fa6109">SVF::CFBasicBlockGWTO::NodeRefToCycleDepthNumber</a></div><div class="ttdeci">Map< const CFBasicBlockNode *, CycleDepthNumber > NodeRefToCycleDepthNumber</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00478">WTO.h:478</a></div></div>
|
|
@@ -902,7 +905,7 @@ $(function() {
|
|
|
902
905
|
<div class="ttc" id="aSVFType_8h_html"><div class="ttname"><a href="SVFType_8h.html">SVFType.h</a></div></div>
|
|
903
906
|
<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>
|
|
904
907
|
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html">SVF::WTOCycleDepth</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00083">WTO.h:83</a></div></div>
|
|
905
|
-
<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#
|
|
908
|
+
<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>
|
|
906
909
|
<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>
|
|
907
910
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_ade2b2aa77bba3781ab921d5c36eb881b"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#ade2b2aa77bba3781ab921d5c36eb881b">SVF::CFBasicBlockGWTO::isHead</a></div><div class="ttdeci">bool isHead(const CFBasicBlockNode *node) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00531">WTO.h:531</a></div></div>
|
|
908
911
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a4041183a3671e35c6b0723e76a34a4f3"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a4041183a3671e35c6b0723e76a34a4f3">SVF::CFBasicBlockGWTO::operator=</a></div><div class="ttdeci">CFBasicBlockGWTO & operator=(const CFBasicBlockGWTO &other)=default</div></div>
|
|
@@ -910,7 +913,7 @@ $(function() {
|
|
|
910
913
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOComp_html_a0ddb4d1f31175afee6d2a57e312f783c"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOComp.html#a0ddb4d1f31175afee6d2a57e312f783c">SVF::CFBasicBlockGWTOComp::CFBasicBlockGWTOComp</a></div><div class="ttdeci">CFBasicBlockGWTOComp(WtoCT k)</div><div class="ttdoc">Default Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00296">WTO.h:296</a></div></div>
|
|
911
914
|
<div class="ttc" id="aclassSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00385">ICFGNode.h:385</a></div></div>
|
|
912
915
|
<div class="ttc" id="aclassSVF_1_1WTOVisitor_html_aabdd2c91e25335bee3b45ead13e95189"><div class="ttname"><a href="classSVF_1_1WTOVisitor.html#aabdd2c91e25335bee3b45ead13e95189">SVF::WTOVisitor::operator=</a></div><div class="ttdeci">WTOVisitor & operator=(const WTOVisitor &) noexcept=default</div><div class="ttdoc">Default Copy Operator=.</div></div>
|
|
913
|
-
<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#
|
|
916
|
+
<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>
|
|
914
917
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOComp_html_a83d5f4a0d2c4efc9840d30f1a1c3b300"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOComp.html#a83d5f4a0d2c4efc9840d30f1a1c3b300">SVF::CFBasicBlockGWTOComp::WtoCT</a></div><div class="ttdeci">WtoCT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00289">WTO.h:289</a></div></div>
|
|
915
918
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTONode_html_a2c032aada23502c3e71921e338f0db9f"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTONode.html#a2c032aada23502c3e71921e338f0db9f">SVF::CFBasicBlockGWTONode::_node</a></div><div class="ttdeci">const CFBasicBlockNode * _node</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00343">WTO.h:343</a></div></div>
|
|
916
919
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a646f67339a7751f0e10ea42143e6894d"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a646f67339a7751f0e10ea42143e6894d">SVF::CFBasicBlockGWTO::inNodeToCycleDepth</a></div><div class="ttdeci">bool inNodeToCycleDepth(const CFBasicBlockNode *n) const</div><div class="ttdoc">Whether the given node is in the node to cycle getCDN.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00563">WTO.h:563</a></div></div>
|
|
@@ -923,7 +926,7 @@ $(function() {
|
|
|
923
926
|
<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>
|
|
924
927
|
<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>
|
|
925
928
|
<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>
|
|
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#
|
|
929
|
+
<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>
|
|
927
930
|
<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< const ICFGNode * > & getICFGNodes() const</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00147">CFBasicBlockG.h:147</a></div></div>
|
|
928
931
|
<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>
|
|
929
932
|
<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>
|
|
@@ -940,13 +943,13 @@ $(function() {
|
|
|
940
943
|
<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>
|
|
941
944
|
<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>
|
|
942
945
|
<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>
|
|
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#
|
|
946
|
+
<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>
|
|
944
947
|
<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>
|
|
945
948
|
<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>
|
|
946
949
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a622b439ca78cc523abe308b26daa337b"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a622b439ca78cc523abe308b26daa337b">SVF::CFBasicBlockGWTO::operator<<</a></div><div class="ttdeci">friend std::ostream & operator<<(std::ostream &o, const CFBasicBlockGWTO &CFBasicBlockGWTO)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00596">WTO.h:596</a></div></div>
|
|
947
950
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOCycle_html_ac1093f863214966bd24e3696d276856f"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOCycle.html#ac1093f863214966bd24e3696d276856f">SVF::CFBasicBlockGWTOCycle::_components</a></div><div class="ttdeci">WtoComponentRefList _components</div><div class="ttdoc">List of components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00397">WTO.h:397</a></div></div>
|
|
948
951
|
<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>
|
|
949
|
-
<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#
|
|
952
|
+
<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>
|
|
950
953
|
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a9d23c459bac6e9f3b64ec0233065ba61"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a9d23c459bac6e9f3b64ec0233065ba61">SVF::WTOCycleDepth::~WTOCycleDepth</a></div><div class="ttdeci">~WTOCycleDepth()=default</div><div class="ttdoc">Default Destructor.</div></div>
|
|
951
954
|
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a0874603e54060f9309aea39c7655d28e"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a0874603e54060f9309aea39c7655d28e">SVF::WTOCycleDepth::compare</a></div><div class="ttdeci">int compare(const WTOCycleDepth &other) const</div><div class="ttdoc">Compare the given wto-cycle-depth.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00148">WTO.h:148</a></div></div>
|
|
952
955
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockNode_html"><div class="ttname"><a href="classSVF_1_1CFBasicBlockNode.html">SVF::CFBasicBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00114">CFBasicBlockG.h:114</a></div></div>
|
|
@@ -960,14 +963,14 @@ $(function() {
|
|
|
960
963
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a3c454131bb83a95d23070d0d732e4e5f"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a3c454131bb83a95d23070d0d732e4e5f">SVF::CFBasicBlockGWTO::NodeRefToWTOCycleMap</a></div><div class="ttdeci">Map< const CFBasicBlockNode *, const CFBasicBlockGWTOCycle * > NodeRefToWTOCycleMap</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00474">WTO.h:474</a></div></div>
|
|
961
964
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_1_1WTOCycleDepthBuilder_html_ad2be261b3cccfd58d83ad1d6659ef639"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO_1_1WTOCycleDepthBuilder.html#ad2be261b3cccfd58d83ad1d6659ef639">SVF::CFBasicBlockGWTO::WTOCycleDepthBuilder::_wtoCycleDepth</a></div><div class="ttdeci">CFBasicBlockGWTOCycleDepthPtr _wtoCycleDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00618">WTO.h:618</a></div></div>
|
|
962
965
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_acc7a69f2e4d44bda34a84ed68667b803"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#acc7a69f2e4d44bda34a84ed68667b803">SVF::CFBasicBlockGWTO::CFBasicBlockGWTOCycleDepth</a></div><div class="ttdeci">WTOCycleDepth< const CFBasicBlockNode * > CFBasicBlockGWTOCycleDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00468">WTO.h:468</a></div></div>
|
|
963
|
-
<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#
|
|
966
|
+
<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>
|
|
964
967
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a1cb3ad13956ab175c4c16bd9c856de47"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a1cb3ad13956ab175c4c16bd9c856de47">SVF::CFBasicBlockGWTO::CFBasicBlockGWTOCycleDepthPtr</a></div><div class="ttdeci">std::shared_ptr< CFBasicBlockGWTOCycleDepth > CFBasicBlockGWTOCycleDepthPtr</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00480">WTO.h:480</a></div></div>
|
|
965
968
|
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a39e8c68176dac40715f6b1595bca489b"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a39e8c68176dac40715f6b1595bca489b">SVF::WTOCycleDepth::NodeRefList</a></div><div class="ttdeci">std::vector< NodeRef > NodeRefList</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00086">WTO.h:86</a></div></div>
|
|
966
969
|
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_ab1c9fade2bcd6db9211ddee376b4f04c"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#ab1c9fade2bcd6db9211ddee376b4f04c">SVF::WTOCycleDepth::operator<</a></div><div class="ttdeci">bool operator<(const WTOCycleDepth &other) const</div><div class="ttdoc">Less than other's depth - other is inside this</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00208">WTO.h:208</a></div></div>
|
|
967
970
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a4fb40a0bed7cad99e9be5480455a6a71"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a4fb40a0bed7cad99e9be5480455a6a71">SVF::CFBasicBlockGWTO::getTails</a></div><div class="ttdeci">const NodeRefSet & getTails(const CFBasicBlockNode *node) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00546">WTO.h:546</a></div></div>
|
|
968
|
-
<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#
|
|
971
|
+
<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>
|
|
969
972
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a8ebe4f04e2c73a441e58b2e0533a75a5"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a8ebe4f04e2c73a441e58b2e0533a75a5">SVF::CFBasicBlockGWTO::NodeRefToNodeRefSetMap</a></div><div class="ttdeci">Map< const CFBasicBlockNode *, NodeRefSet > NodeRefToNodeRefSetMap</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00475">WTO.h:475</a></div></div>
|
|
970
|
-
<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#
|
|
973
|
+
<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>
|
|
971
974
|
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_acbe5ed1e3ea411cc87c2fafa16f4c38f"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#acbe5ed1e3ea411cc87c2fafa16f4c38f">SVF::WTOCycleDepth::_heads</a></div><div class="ttdeci">NodeRefList _heads</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00090">WTO.h:90</a></div></div>
|
|
972
975
|
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a943e6586b5b2c8343437a914ddb1a1b6"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a943e6586b5b2c8343437a914ddb1a1b6">SVF::WTOCycleDepth::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00122">WTO.h:122</a></div></div>
|
|
973
976
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGraph_html"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGraph.html">SVF::CFBasicBlockGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00352">CFBasicBlockG.h:352</a></div></div>
|
|
@@ -991,7 +994,7 @@ $(function() {
|
|
|
991
994
|
<div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
|
|
992
995
|
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a94c9c81ebe4df428c163f999284b6d98"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a94c9c81ebe4df428c163f999284b6d98">SVF::WTOCycleDepth::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Convert the wto-cycle-depth to a string.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00128">WTO.h:128</a></div></div>
|
|
993
996
|
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a5ab108a0e1be3f33a3c1ffa2beaedf0e"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a5ab108a0e1be3f33a3c1ffa2beaedf0e">SVF::WTOCycleDepth::operator=</a></div><div class="ttdeci">WTOCycleDepth & operator=(const WTOCycleDepth &)=default</div><div class="ttdoc">Default Copy Operator=.</div></div>
|
|
994
|
-
<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#
|
|
997
|
+
<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>
|
|
995
998
|
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOComp_html_a83d5f4a0d2c4efc9840d30f1a1c3b300aaf4f363db1d83aea6168413b9530b392"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOComp.html#a83d5f4a0d2c4efc9840d30f1a1c3b300aaf4f363db1d83aea6168413b9530b392">SVF::CFBasicBlockGWTOComp::Node</a></div><div class="ttdeci">@ Node</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00291">WTO.h:291</a></div></div>
|
|
996
999
|
<!-- start footer part -->
|
|
997
1000
|
<hr class="footer"/><address class="footer"><small>
|