On Thu, Mar 27, 2025 at 06:11:25PM +0000, Sam James wrote:
> >> diff --git a/gcc/testsuite/gfortran.dg/cray_pointers_2.f90
> >> b/gcc/testsuite/gfortran.dg/cray_pointers_2.f90
> >> index 4351874825ed..a7e15bad850a 100644
> >> --- a/gcc/testsuite/gfortran.dg/cray_pointers_2.f90
> >> +++ b/gcc/testsuite/gfortran.dg/cray_pointers_2.f90
> >> @@ -1,6 +1,6 @@
> >> ! Using two spaces between dg-do and run is a hack to keep
> >> gfortran-dg-runtest
> >> ! from cycling through optimization options for this expensive test.
> >> -! { dg-do run }
> >> +! { dg-do run }
> >> ! { dg-options "-O3 -fcray-pointer -fbounds-check -fno-inline" }
> >> ! { dg-timeout-factor 4 }
> >> !
> >
> > There was an attempt by Jerry some time ago to have a directive
> > for not cycling through options, but this is not yet available.
>
> Ah, PR28032.
There already is a documented directive which can do that.
As documented, dg-skip-if allows to skip a test if some option appears in
the list (e.g. cycle through everything but skip the test with -O2) or skip
unless all the options from a string are included.
The following patch runs the test only in the -O3 -g case (just using -O3
there would run it twice, once with
-O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions
and once with
-O3 -g
The -O3 from dg-options can be dropped too.
Some tests (e.g. in testsuite/gcc.dg/torture/) use e.g.
/* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O2" } } */
so the test is run just with -O2 by default, but when testing with
GCC_TEST_RUN_EXPENSIVE=1 it cycles through everything. Note, you'd need
to drop the -O3 from dg-options in that case for sure, because with explicit
-O3 option in there it cycles through -O0 -O3, -O1 -O3, -O2 -O3,
-O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer
-finline-functions -O3,
-O3 -g -O3, -Os -O3.
Ok for trunk?
Or do you want the ! run_expensive_tests version?
2025-03-27 Jakub Jelinek <[email protected]>
* gfortran.dg/cray_pointers_2.f90: Replace { dg-do run } hack with
dg-skip-if directive.
--- gcc/testsuite/gfortran.dg/cray_pointers_2.f90.jj 2020-01-12
11:54:38.207386342 +0100
+++ gcc/testsuite/gfortran.dg/cray_pointers_2.f90 2025-03-27
19:23:29.237873386 +0100
@@ -1,6 +1,5 @@
-! Using two spaces between dg-do and run is a hack to keep gfortran-dg-runtest
-! from cycling through optimization options for this expensive test.
-! { dg-do run }
+! { dg-do run }
+! { dg-skip-if "Don't cycle through options" { *-*-* } { "*" } { "-O3 -g" } }
! { dg-options "-O3 -fcray-pointer -fbounds-check -fno-inline" }
! { dg-timeout-factor 4 }
!
Jakub