https://gcc.gnu.org/g:3f51f0dc88ec21c1ec79df694200f10ef85915f4

commit r15-3254-g3f51f0dc88ec21c1ec79df694200f10ef85915f4
Author: Alex Coplan <alex.cop...@arm.com>
Date:   Tue Aug 27 16:51:12 2024 +0000

    testsuite: Add scan-ltrans-rtl* for use in dg-final [PR116140]
    
    This extends the scan-ltrans-tree* helpers to create RTL variants.  This
    is needed to check the behaviour of an RTL pass under LTO.
    
    gcc/ChangeLog:
    
            PR libstdc++/116140
            * doc/sourcebuild.texi: Document ltrans-rtl value of kind for
            scan-<kind>-dump*.
    
    gcc/testsuite/ChangeLog:
    
            PR libstdc++/116140
            * lib/scanltranstree.exp (scan-ltrans-rtl-dump): New.
            (scan-ltrans-rtl-dump-not): New.
            (scan-ltrans-rtl-dump-dem): New.
            (scan-ltrans-rtl-dump-dem-not): New.
            (scan-ltrans-rtl-dump-times): New.

Diff:
---
 gcc/doc/sourcebuild.texi             |  4 +-
 gcc/testsuite/lib/scanltranstree.exp | 80 +++++++++++++++++-------------------
 2 files changed, 39 insertions(+), 45 deletions(-)

diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index 3c55f1037953..0636fc0567c5 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -3627,8 +3627,8 @@ stands for zero or more unmatched lines; the whitespace 
after
 @subsubsection Scan optimization dump files
 
 These commands are available for @var{kind} of @code{tree}, @code{ltrans-tree},
-@code{offload-tree}, @code{rtl}, @code{offload-rtl}, @code{ipa},
-@code{offload-ipa}, and @code{wpa-ipa}.
+@code{offload-tree}, @code{rtl}, @code{ltrans-rtl}, @code{offload-rtl},
+@code{ipa}, @code{offload-ipa}, and @code{wpa-ipa}.
 
 @table @code
 @item scan-@var{kind}-dump @var{regex} @var{suffix} [@{ target/xfail 
@var{selector} @}]
diff --git a/gcc/testsuite/lib/scanltranstree.exp 
b/gcc/testsuite/lib/scanltranstree.exp
index bc6e02dc3696..a7d4de3765fc 100644
--- a/gcc/testsuite/lib/scanltranstree.exp
+++ b/gcc/testsuite/lib/scanltranstree.exp
@@ -19,50 +19,44 @@
 
 load_lib scandump.exp
 
-# The first item in the list is an LTO equivalent of the second item
-# in the list; see the documentation of the second item for details.
-foreach { name scan type suffix } {
-    scan-ltrans-tree-dump scan-dump ltrans-tree t
-    scan-ltrans-tree-dump-not scan-dump-not ltrans-tree t
-    scan-ltrans-tree-dump-dem scan-dump-dem ltrans-tree t
-    scan-ltrans-tree-dump-dem-not scan-dump-dem-not ltrans-tree t
-} {
-    eval [string map [list @NAME@ $name \
-                          @SCAN@ $scan \
-                          @TYPE@ $type \
-                          @SUFFIX@ $suffix] {
-        proc @NAME@ { args } {
-           if { [llength $args] < 2 } {
-               error "@NAME@: too few arguments"
-               return
-           }
-           if { [llength $args] > 3 } {
-               error "@NAME@: too many arguments"
-               return
+# Define scan-ltrans-{tree,rtl}-dump{,-not,-dem,-dem-not}.  These are LTO
+# variants of the corresponding functions without -ltrans in the name.
+foreach ir { tree rtl } {
+    foreach modifier { {} -not -dem -dem-not } {
+       eval [string map [list @NAME@ scan-ltrans-$ir-dump$modifier \
+                              @SCAN@ scan$modifier \
+                              @TYPE@ ltrans-$ir \
+                              @SUFFIX@ [string index $ir 0]] {
+           proc @NAME@ { args } {
+               if { [llength $args] < 2 } {
+                   error "@NAME@: too few arguments"
+                   return
+               }
+               if { [llength $args] > 3 } {
+                   error "@NAME@: too many arguments"
+                   return
+               }
+               if { [llength $args] >= 3 } {
+                   @SCAN@ @TYPE@ [lindex $args 0] \
+                       "\[0-9\]\[0-9\]\[0-9\]@SUFFIX@.[lindex $args 1]" \
+                       ".ltrans0.ltrans" \
+                       [lindex $args 2]
+               } else {
+                   @SCAN@ @TYPE@ [lindex $args 0] \
+                       "\[0-9\]\[0-9\]\[0-9\]@SUFFIX@.[lindex $args 1]" \
+                       ".ltrans0.ltrans"
+               }
            }
-           if { [llength $args] >= 3 } {
-               @SCAN@ @TYPE@ [lindex $args 0] \
-                   "\[0-9\]\[0-9\]\[0-9\]@SUFFIX@.[lindex $args 1]" \
-                   ".ltrans0.ltrans" \
-                   [lindex $args 2]
-           } else {
-               @SCAN@ @TYPE@ [lindex $args 0] \
-                   "\[0-9\]\[0-9\]\[0-9\]@SUFFIX@.[lindex $args 1]" \
-                   ".ltrans0.ltrans"
-           }
-        }
-    }]
+       }]
+    }
 }
 
-# The first item in the list is an LTO equivalent of the second item
-# in the list; see the documentation of the second item for details.
-foreach { name scan type suffix } {
-    scan-ltrans-tree-dump-times scan-dump-times ltrans-tree t
-} {
-    eval [string map [list @NAME@ $name \
-                          @SCAN@ $scan \
-                          @TYPE@ $type \
-                          @SUFFIX@ $suffix] {
+# Define scan-ltrans-{tree,rtl}-dump-times.  These are LTO variants of the
+# corresponding functions without -ltrans in the name.
+foreach ir { tree rtl } {
+    eval [string map [list @NAME@ scan-ltrans-$ir-dump-times \
+                          @TYPE@ ltrans-$ir \
+                          @SUFFIX@ [string index $ir 0]] {
        proc @NAME@ { args } {
            if { [llength $args] < 3 } {
                error "@NAME@: too few arguments"
@@ -73,11 +67,11 @@ foreach { name scan type suffix } {
                return
            }
            if { [llength $args] >= 4 } {
-               @SCAN@ "@TYPE@" [lindex $args 0] [lindex $args 1] \
+               scan-dump-times "@TYPE@" [lindex $args 0] [lindex $args 1] \
                    "\[0-9\]\[0-9\]\[0-9\]@SUFFIX@.[lindex $args 2]" \
                    ".ltrans0.ltrans" [lindex $args 3]
            } else {
-               @SCAN@ "@TYPE@" [lindex $args 0] [lindex $args 1] \
+               scan-dump-times "@TYPE@" [lindex $args 0] [lindex $args 1] \
                    "\[0-9\]\[0-9\]\[0-9\]@SUFFIX@.[lindex $args 2]" \
                    ".ltrans0.ltrans"
            }

Reply via email to