Skip to content

Commit

Permalink
Let each 'lto_init' determine the default 'LTO_OPTIONS', and 'torture…
Browse files Browse the repository at this point in the history
…-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 c1a7cdb)
"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'.
  • Loading branch information
tschwinge committed May 8, 2023
1 parent 130c2f3 commit d6654a4
Show file tree
Hide file tree
Showing 7 changed files with 44 additions and 34 deletions.
2 changes: 1 addition & 1 deletion gcc/testsuite/g++.dg/guality/guality.exp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ proc check_guality {args} {
}

dg-init
torture-init

global GDB
if ![info exists ::env(GUALITY_GDB_NAME)] {
Expand All @@ -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 {}] \
Expand Down
2 changes: 1 addition & 1 deletion gcc/testsuite/gcc.dg/guality/guality.exp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ proc check_guality {args} {
}

dg-init
torture-init

global GDB
if ![info exists ::env(GUALITY_GDB_NAME)] {
Expand Down Expand Up @@ -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 {}] \
Expand Down
2 changes: 1 addition & 1 deletion gcc/testsuite/gfortran.dg/guality/guality.exp
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ if { [istarget "powerpc-ibm-aix*"] } {
}

dg-init
torture-init

global GDB
if ![info exists ::env(GUALITY_GDB_NAME)] {
Expand All @@ -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 \

Expand Down
17 changes: 0 additions & 17 deletions gcc/testsuite/lib/c-torture.exp
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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] {
Expand Down
14 changes: 0 additions & 14 deletions gcc/testsuite/lib/gcc-dg.exp
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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"
}
}
Expand Down
13 changes: 13 additions & 0 deletions gcc/testsuite/lib/lto.exp
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
}

Expand All @@ -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:
Expand Down
28 changes: 28 additions & 0 deletions gcc/testsuite/lib/torture-options.exp
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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.
Expand Down

0 comments on commit d6654a4

Please sign in to comment.