From: Vineet Gupta <vineetg@rivosinc.com>
To: gcc-patches@gcc.gnu.org
Cc: kito.cheng@gmail.com, Jeff Law <jeffreyalaw@gmail.com>,
Palmer Dabbelt <palmer@rivosinc.com>,
Philipp Tomsich <philipp.tomsich@vrull.eu>,
Christoph Mullner <christoph.muellner@vrull.eu>,
gnu-toolchain@rivosinc.com, Vineet Gupta <vineetg@rivosinc.com>
Subject: [Committed] testsuite: Unbork multilib setups using -march flags (RISC-V)
Date: Thu, 1 Jun 2023 12:38:53 -0700 [thread overview]
Message-ID: <20230601193853.160037-1-vineetg@rivosinc.com> (raw)
In-Reply-To: <f1c659b3-a2cb-d9aa-a490-9ad7cd3e42b5@gmail.com>
RISC-V multilib testing is currently busted with follow splat all over:
| Schedule of variations:
| riscv-sim/-march=rv64imafdc/-mabi=lp64d/-mcmodel=medlow
| riscv-sim/-march=rv32imafdc/-mabi=ilp32d/-mcmodel=medlow
| riscv-sim/-march=rv32imac/-mabi=ilp32/-mcmodel=medlow
| riscv-sim/-march=rv64imac/-mabi=lp64/-mcmodel=medlow
...
...
| ERROR: tcl error code NONE
| ERROR: torture-init: torture_without_loops is not empty as expected
causing insane amount of false failures.
| ========= Summary of gcc testsuite =========
| | # of unexpected case / # of unique unexpected case
| | gcc | g++ | gfortran |
| rv64imafdc/ lp64d/ medlow | 5421 / 4 | 1 / 1 | 6 / 1 |
| rv32imafdc/ ilp32d/ medlow | 5422 / 5 | 3 / 2 | 6 / 1 |
| rv32imac/ ilp32/ medlow | 391 / 5 | 3 / 2 | 43 / 8 |
| rv64imac/ lp64/ medlow | 5422 / 5 | 1 / 1 | 43 / 8 |
The error splat itself is from recent test harness improvements for stricter
checks for torture-{init,finish} pairing. But the real issue is a latent bug
from 2009: commit 3dd1415dc88, ("i386-prefetch.exp: Skip tests when multilib
flags contain -march") which added an "early exit" condition to i386-prefetch.exp
which could potentially cause an unpaired torture-{init,finish}.
The early exit only happens in a multlib setup using -march in flags
which is what RISC-V happens to use, hence the reason this was only seen
on RISC-V multilib testing.
Moving the early exit outside of torture-{init,finish} bracket
reinstates RISC-V testing.
| rv64imafdc/ lp64d/ medlow | 3 / 2 | 1 / 1 | 6 / 1 |
| rv32imafdc/ ilp32d/ medlow | 4 / 3 | 3 / 2 | 6 / 1 |
| rv32imac/ ilp32/ medlow | 3 / 2 | 3 / 2 | 43 / 8 |
| rv64imac/ lp64/ medlow | 5 / 4 | 1 / 1 | 43 / 8 |
gcc/testsuite:
* gcc.misc-tests/i386-prefetch.exp: Move early return outside
the torture-{init,finish}
Signed-off-by: Vineet Gupta <vineetg@rivosinc.com>
---
gcc/testsuite/gcc.misc-tests/i386-prefetch.exp | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp b/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp
index ad9e56a54bcf..98aab506cba0 100644
--- a/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp
+++ b/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp
@@ -14,6 +14,13 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
+if { [board_info target exists multilib_flags]
+ && [string match "* -march=*" " [board_info target multilib_flags] "] } {
+ # Multilib flags come after the -march flags we pass and override
+ # them, so skip these tests when such flags are passed.
+ return
+}
+
# Test that the correct data prefetch instructions (SSE or 3DNow! variant,
# or none) are used for various i386 cpu-type and instruction set
# extension options for __builtin_prefetch. When using -mtune, specify
@@ -90,13 +97,6 @@ load_lib torture-options.exp
dg-init
torture-init
-if { [board_info target exists multilib_flags]
- && [string match "* -march=*" " [board_info target multilib_flags] "] } {
- # Multilib flags come after the -march flags we pass and override
- # them, so skip these tests when such flags are passed.
- return
-}
-
set-torture-options $PREFETCH_NONE
gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/i386-pf-none-*.c]] "" ""
--
2.34.1
next prev parent reply other threads:[~2023-06-01 19:39 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-31 16:25 [PATCH 0/3] Unbork testsuite for multlib setups Vineet Gupta
2023-05-31 16:25 ` [PATCH 1/3] testsuite: Unbork multilib testing on RISC-V (and any target really) Vineet Gupta
2023-05-31 17:57 ` Jeff Law
2023-05-31 18:13 ` Iain Sandoe
2023-05-31 18:22 ` Vineet Gupta
2023-06-01 7:24 ` Thomas Schwinge
2023-06-01 11:47 ` Thomas Schwinge
2023-06-01 14:48 ` Jeff Law
2023-06-01 19:38 ` Vineet Gupta [this message]
2023-05-31 18:16 ` Vineet Gupta
2023-06-01 14:52 ` Jeff Law
2023-05-31 16:25 ` [PATCH 2/3] RISC-V: Add missing torture-init and torture-finish for rvv.exp Vineet Gupta
2023-06-01 11:53 ` Thomas Schwinge
2023-06-01 14:54 ` Jeff Law
2023-06-01 19:33 ` Vineet Gupta
2023-05-31 16:25 ` [PATCH 3/3] testsuite: print any leaking torture options for debugging Vineet Gupta
2023-06-01 14:51 ` Jeff Law
2023-06-01 19:39 ` [Committed] " Vineet Gupta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230601193853.160037-1-vineetg@rivosinc.com \
--to=vineetg@rivosinc.com \
--cc=christoph.muellner@vrull.eu \
--cc=gcc-patches@gcc.gnu.org \
--cc=gnu-toolchain@rivosinc.com \
--cc=jeffreyalaw@gmail.com \
--cc=kito.cheng@gmail.com \
--cc=palmer@rivosinc.com \
--cc=philipp.tomsich@vrull.eu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).