This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][testsuite/guality] Run guality tests with Og
- From: Richard Biener <rguenther at suse dot de>
- To: Tom de Vries <tdevries at suse dot de>
- Cc: gcc-patches at gcc dot gnu dot org, Jakub Jelinek <jakub at redhat dot com>
- Date: Fri, 13 Jul 2018 13:27:25 +0200 (CEST)
- Subject: Re: [PATCH][testsuite/guality] Run guality tests with Og
- References: <20180713110243.xw4dgqr6bx6hykjr@delia>
On Fri, 13 Jul 2018, Tom de Vries wrote:
> Hi,
>
> we advertise Og as the optimization level of choice for the standard
> edit-compile-debug cycle, but do not run the guality tests for Og with the
> default torture options.
>
> This patch ensures that we test -Og in the guality tests.
>
> F.i., for gcc.dg/guality there are 45 fails for Og (while there are none for
> O1), in these test-cases:
> ...
> gcc.dg/guality/pr54200.c
> gcc.dg/guality/pr54970.c
> gcc.dg/guality/pr56154-1.c
> gcc.dg/guality/pr59776.c
> gcc.dg/guality/sra-1.c
> ...
>
> Tested gcc.dg/guality on c-only compiler, currently doing bootstrap and
> reg-test on x86_64.
>
> OK for trunk if no issues found during testing?
OK.
Richard.
> Thanks,
> - Tom
>
> [testsuite/guality] Run guality tests with Og
>
> 2018-07-13 Tom de Vries <tdevries@suse.de>
>
> * lib/gcc-gdb-test.exp (guality_minimal_options): New proc.
> * g++.dg/guality/guality.exp: Ensure Og is part of torture options.
> * gcc.dg/guality/guality.exp: Same.
> * gfortran.dg/guality/guality.exp: Same.
>
> ---
> gcc/testsuite/g++.dg/guality/guality.exp | 9 +++++++++
> gcc/testsuite/gcc.dg/guality/guality.exp | 3 ++-
> gcc/testsuite/gfortran.dg/guality/guality.exp | 9 +++++++++
> gcc/testsuite/lib/gcc-gdb-test.exp | 14 ++++++++++++++
> 4 files changed, 34 insertions(+), 1 deletion(-)
>
> diff --git a/gcc/testsuite/g++.dg/guality/guality.exp b/gcc/testsuite/g++.dg/guality/guality.exp
> index 4be22baa19c..757b20b61e2 100644
> --- a/gcc/testsuite/g++.dg/guality/guality.exp
> +++ b/gcc/testsuite/g++.dg/guality/guality.exp
> @@ -48,6 +48,14 @@ if ![info exists ::env(GUALITY_GDB_NAME)] {
> }
> report_gdb $::env(GUALITY_GDB_NAME) [info script]
>
> +global DG_TORTURE_OPTIONS LTO_TORTURE_OPTIONS
> +set guality_dg_torture_options [guality_minimal_options $DG_TORTURE_OPTIONS]
> +torture-init
> +set-torture-options \
> + $guality_dg_torture_options \
> + [list {}] \
> + $LTO_TORTURE_OPTIONS
> +
> if {[check_guality "
> #include \"$srcdir/$subdir/guality.h\"
> volatile long int varl = 6;
> @@ -65,4 +73,5 @@ if [info exists guality_gdb_name] {
> unsetenv GUALITY_GDB_NAME
> }
>
> +torture-finish
> dg-finish
> diff --git a/gcc/testsuite/gcc.dg/guality/guality.exp b/gcc/testsuite/gcc.dg/guality/guality.exp
> index d9994341477..ca77a446f86 100644
> --- a/gcc/testsuite/gcc.dg/guality/guality.exp
> +++ b/gcc/testsuite/gcc.dg/guality/guality.exp
> @@ -62,7 +62,8 @@ proc guality_transform_options { args } {
> }
>
> global DG_TORTURE_OPTIONS
> -set guality_dg_torture_options [guality_transform_options $DG_TORTURE_OPTIONS]
> +set guality_dg_torture_options [guality_minimal_options $DG_TORTURE_OPTIONS]
> +set guality_dg_torture_options [guality_transform_options $guality_dg_torture_options]
> set guality_lto_torture_options [guality_transform_options $LTO_TORTURE_OPTIONS]
> torture-init
> set-torture-options \
> diff --git a/gcc/testsuite/gfortran.dg/guality/guality.exp b/gcc/testsuite/gfortran.dg/guality/guality.exp
> index f76347dd52f..f224cdfefa5 100644
> --- a/gcc/testsuite/gfortran.dg/guality/guality.exp
> +++ b/gcc/testsuite/gfortran.dg/guality/guality.exp
> @@ -29,10 +29,19 @@ if ![info exists ::env(GUALITY_GDB_NAME)] {
> }
> report_gdb $::env(GUALITY_GDB_NAME) [info script]
>
> +global DG_TORTURE_OPTIONS LTO_TORTURE_OPTIONS
> +set guality_dg_torture_options [guality_minimal_options $DG_TORTURE_OPTIONS]
> +torture-init
> +set-torture-options \
> + $guality_dg_torture_options \
> + [list {}] \
> + $LTO_TORTURE_OPTIONS
> +
> gfortran-dg-runtest [lsort [glob $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ]] "" ""
>
> if [info exists guality_gdb_name] {
> unsetenv GUALITY_GDB_NAME
> }
>
> +torture-finish
> dg-finish
> diff --git a/gcc/testsuite/lib/gcc-gdb-test.exp b/gcc/testsuite/lib/gcc-gdb-test.exp
> index bb966d43023..b13d3ec7f85 100644
> --- a/gcc/testsuite/lib/gcc-gdb-test.exp
> +++ b/gcc/testsuite/lib/gcc-gdb-test.exp
> @@ -166,3 +166,17 @@ proc report_gdb { gdb loc } {
> }
> send_log -- "---\n$gdb_version\n---\n"
> }
> +
> +# Argument 0 is the option list.
> +# Return the option list, ensuring that at least -Og is present.
> +
> +proc guality_minimal_options { args } {
> + set options [lindex $args 0]
> + foreach opt $options {
> + if { [regexp -- "-Og" $opt] } {
> + return $options
> + }
> + }
> +
> + return [lappend options "-Og"]
> +}
>
>
--
Richard Biener <rguenther@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)