On Wed, Aug 28, 2024 at 4:05 AM Alex Coplan <alex.cop...@arm.com> wrote:
>
> On 28/08/2024 11:53, Richard Sandiford wrote:
> > Alex Coplan <alex.cop...@arm.com> writes:
> > > Hi,
> > >
> > > This is a v2 of:
> > > https://gcc.gnu.org/pipermail/gcc-patches/2024-August/659966.html
> > > which is rebased on top of Richard S's patch to reduce the cut-and-paste 
> > > in
> > > scanltranstree.exp (thanks again for doing that).
> > >
> > > Tested on aarch64-linux-gnu, OK for trunk?
> > >
> > > Thanks,
> > > Alex
> > >
> > > -- >8 --
> > >
> > > 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.
> >
> > The patch only contains the gcc/testsuite changes, but those are ok
> > for trunk, thanks.
>
> Gah, sorry -- those got lost in the rebase.  Is it OK to commit this
> together with the doc changes included as per the previous patch?

I am getting a new ERROR after this. Maybe you didn't notice this
since you were looking for new FAIL.
+ERROR: gcc.dg/ipa/ipa-icf-38.c: error executing dg-final: variable is
not assigned by any conversion specifiers

The error corresponds to:
/* { dg-final { scan-ltrans-tree-dump "Function foo" "optimized" } } */

That is the only testcase which uses `scan-ltrans-tree-dump*` even.

Thanks,
Andrew Pinski



>
> Alex
>
> >
> > Richard
> >
> > > ---
> > >  gcc/testsuite/lib/scanltranstree.exp | 80 +++++++++++++---------------
> > >  1 file changed, 37 insertions(+), 43 deletions(-)
> > >
> > > diff --git a/gcc/testsuite/lib/scanltranstree.exp 
> > > b/gcc/testsuite/lib/scanltranstree.exp
> > > index bc6e02dc369..a7d4de3765f 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