aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2023-05-02 19:57:47 +0200
committerThomas Schwinge <thomas@codesourcery.com>2023-05-08 15:59:24 +0200
commitd6654a4be3ba44c0d57be7c8a51d76d9721345e1 (patch)
treee2ae8ad9809ff65faaabe26242710a1a0730d737
parent130c2f3c3acd0963aeab64b77bd6b578e698a2f6 (diff)
downloadgcc-d6654a4be3ba44c0d57be7c8a51d76d9721345e1.zip
gcc-d6654a4be3ba44c0d57be7c8a51d76d9721345e1.tar.gz
gcc-d6654a4be3ba44c0d57be7c8a51d76d9721345e1.tar.bz2
Let each 'lto_init' determine the default 'LTO_OPTIONS', and 'torture-init' the 'LTO_TORTURE_OPTIONS'
Otherwise, for example for 'RUNTESTFLAGS' of '--target_board=unix\{-m64,-m32\}' vs. '--target_board=unix\{-m32,-m64\}', both variants exercise testing with always the first flag variant's 'LTO_OPTIONS'/'LTO_TORTURE_OPTIONS', which results in unequal test results between the two 'RUNTESTFLAGS' variants if one of the flag variants has 'check_linker_plugin_available' but the other doesn't. Fix-up for r180245 (commit c1a7cdbbcca90ad5260bfc543f8c10f3514e76c1) "Update testsuite to run with slim LTO". gcc/testsuite/ * g++.dg/guality/guality.exp: Move 'torture-init' earlier. * gcc.dg/guality/guality.exp: Likewise. * gfortran.dg/guality/guality.exp: Likewise. * lib/c-torture.exp (LTO_TORTURE_OPTIONS): Don't set. * lib/gcc-dg.exp (LTO_TORTURE_OPTIONS): Don't set. * lib/lto.exp (lto_init, lto_finish): Let each 'lto_init' determine the default 'LTO_OPTIONS'. * lib/torture-options.exp (torture-init, torture-finish): Let each 'torture-init' determine the 'LTO_TORTURE_OPTIONS'.
-rw-r--r--gcc/testsuite/g++.dg/guality/guality.exp2
-rw-r--r--gcc/testsuite/gcc.dg/guality/guality.exp2
-rw-r--r--gcc/testsuite/gfortran.dg/guality/guality.exp2
-rw-r--r--gcc/testsuite/lib/c-torture.exp17
-rw-r--r--gcc/testsuite/lib/gcc-dg.exp14
-rw-r--r--gcc/testsuite/lib/lto.exp13
-rw-r--r--gcc/testsuite/lib/torture-options.exp28
7 files changed, 44 insertions, 34 deletions
diff --git a/gcc/testsuite/g++.dg/guality/guality.exp b/gcc/testsuite/g++.dg/guality/guality.exp
index 2d736d2..cd56b06 100644
--- a/gcc/testsuite/g++.dg/guality/guality.exp
+++ b/gcc/testsuite/g++.dg/guality/guality.exp
@@ -37,6 +37,7 @@ proc check_guality {args} {
}
dg-init
+torture-init
global GDB
if ![info exists ::env(GUALITY_GDB_NAME)] {
@@ -54,7 +55,6 @@ 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 {}] \
diff --git a/gcc/testsuite/gcc.dg/guality/guality.exp b/gcc/testsuite/gcc.dg/guality/guality.exp
index 075bebe..a8f2921 100644
--- a/gcc/testsuite/gcc.dg/guality/guality.exp
+++ b/gcc/testsuite/gcc.dg/guality/guality.exp
@@ -37,6 +37,7 @@ proc check_guality {args} {
}
dg-init
+torture-init
global GDB
if ![info exists ::env(GUALITY_GDB_NAME)] {
@@ -69,7 +70,6 @@ global 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 \
$guality_dg_torture_options \
[list {}] \
diff --git a/gcc/testsuite/gfortran.dg/guality/guality.exp b/gcc/testsuite/gfortran.dg/guality/guality.exp
index 86a966a..6104495 100644
--- a/gcc/testsuite/gfortran.dg/guality/guality.exp
+++ b/gcc/testsuite/gfortran.dg/guality/guality.exp
@@ -18,6 +18,7 @@ if { [istarget "powerpc-ibm-aix*"] } {
}
dg-init
+torture-init
global GDB
if ![info exists ::env(GUALITY_GDB_NAME)] {
@@ -35,7 +36,6 @@ report_gdb $::env(GUALITY_GDB_NAME) [info script]
global DG_TORTURE_OPTIONS
set guality_dg_torture_options [guality_minimal_options $DG_TORTURE_OPTIONS]
-torture-init
set-torture-options \
$guality_dg_torture_options \
diff --git a/gcc/testsuite/lib/c-torture.exp b/gcc/testsuite/lib/c-torture.exp
index e54437d..f62c6e9 100644
--- a/gcc/testsuite/lib/c-torture.exp
+++ b/gcc/testsuite/lib/c-torture.exp
@@ -38,7 +38,6 @@ if { $orig_environment_saved == 0 } {
# The default option list can be overridden by
# TORTURE_OPTIONS="{ list1 } ... { listN }"
-set LTO_TORTURE_OPTIONS ""
if [info exists TORTURE_OPTIONS] {
set C_TORTURE_OPTIONS $TORTURE_OPTIONS
} else {
@@ -57,22 +56,6 @@ if [info exists TORTURE_OPTIONS] {
{ -O3 -g } \
{ -Os } \
{ -Og -g } ]
-
- if [check_effective_target_lto] {
- # When having plugin test both slim and fat LTO and plugin/nonplugin
- # path.
- if [check_linker_plugin_available] {
- set LTO_TORTURE_OPTIONS [list \
- { -O2 -flto -fno-use-linker-plugin -flto-partition=none } \
- { -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects }
- ]
- } else {
- set LTO_TORTURE_OPTIONS [list \
- { -O2 -flto -flto-partition=none } \
- { -O2 -flto }
- ]
- }
- }
}
if [info exists ADDITIONAL_TORTURE_OPTIONS] {
diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
index 9d79b94..693cbdd 100644
--- a/gcc/testsuite/lib/gcc-dg.exp
+++ b/gcc/testsuite/lib/gcc-dg.exp
@@ -73,7 +73,6 @@ if { $orig_environment_saved == 0 } {
global gcc_force_conventional_output
set gcc_force_conventional_output ""
-set LTO_TORTURE_OPTIONS ""
if [info exists TORTURE_OPTIONS] {
set DG_TORTURE_OPTIONS $TORTURE_OPTIONS
} else {
@@ -93,19 +92,6 @@ if [info exists TORTURE_OPTIONS] {
{ -Os } ]
if [check_effective_target_lto] {
- # When having plugin test both slim and fat LTO and plugin/nonplugin
- # path.
- if [check_linker_plugin_available] {
- set LTO_TORTURE_OPTIONS [list \
- { -O2 -flto -fno-use-linker-plugin -flto-partition=none } \
- { -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects }
- ]
- } else {
- set LTO_TORTURE_OPTIONS [list \
- { -O2 -flto -flto-partition=none } \
- { -O2 -flto }
- ]
- }
set gcc_force_conventional_output "-ffat-lto-objects"
}
}
diff --git a/gcc/testsuite/lib/lto.exp b/gcc/testsuite/lib/lto.exp
index 9e44c44..c95e7d0 100644
--- a/gcc/testsuite/lib/lto.exp
+++ b/gcc/testsuite/lib/lto.exp
@@ -215,6 +215,11 @@ proc lto_init { args } {
{-O2 -flto} \
]
}
+ global lto_init_set_LTO_OPTIONS
+ if [info exists lto_init_set_LTO_OPTIONS] {
+ error "lto_init_set_LTO_OPTIONS already set"
+ }
+ set lto_init_set_LTO_OPTIONS 1
}
}
@@ -233,6 +238,14 @@ proc lto_finish { } {
} elseif [board_info $dest exists mathlib] {
unset board_info($dest,mathlib)
}
+
+ # Let the next 'lto_init' redetermine the default 'LTO_OPTIONS'.
+ global lto_init_set_LTO_OPTIONS
+ if [info exists lto_init_set_LTO_OPTIONS] {
+ global LTO_OPTIONS
+ unset LTO_OPTIONS
+ unset lto_init_set_LTO_OPTIONS
+ }
}
# Subsets of tests can be selectively disabled by members of this list:
diff --git a/gcc/testsuite/lib/torture-options.exp b/gcc/testsuite/lib/torture-options.exp
index 6129560..394418e 100644
--- a/gcc/testsuite/lib/torture-options.exp
+++ b/gcc/testsuite/lib/torture-options.exp
@@ -28,6 +28,27 @@ proc torture-init { args } {
if [info exists torture_with_loops] {
error "torture-init: torture_with_loops is not empty as expected"
}
+
+ global LTO_TORTURE_OPTIONS
+ if [info exists LTO_TORTURE_OPTIONS] {
+ error "torture-init: LTO_TORTURE_OPTIONS is not empty as expected"
+ }
+ set LTO_TORTURE_OPTIONS ""
+ if [check_effective_target_lto] {
+ # When having plugin test both slim and fat LTO and plugin/nonplugin
+ # path.
+ if [check_linker_plugin_available] {
+ set LTO_TORTURE_OPTIONS [list \
+ { -O2 -flto -fno-use-linker-plugin -flto-partition=none } \
+ { -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects }
+ ]
+ } else {
+ set LTO_TORTURE_OPTIONS [list \
+ { -O2 -flto -flto-partition=none } \
+ { -O2 -flto }
+ ]
+ }
+ }
}
# Return 1 if torture options have already been set, 0 otherwise.
@@ -100,6 +121,13 @@ proc torture-finish { args } {
} else {
error "torture-finish: torture_with_loops is not defined"
}
+
+ global LTO_TORTURE_OPTIONS
+ if [info exists LTO_TORTURE_OPTIONS] {
+ unset LTO_TORTURE_OPTIONS
+ } else {
+ error "torture-finish: LTO_TORTURE_OPTIONS is not defined"
+ }
}
# Useful for debugging .exp files.