Hi Peter and Segher,
on 2022/7/23 03:28, Peter Bergner wrote:
> On 7/22/22 1:53 PM, Peter Bergner wrote:
>> So I think the way the code above *should* work is:
>> 1) Any -mdejagnu-cpu= usage should filter out all -mcpu= and -mtune=
>> options.
>> 2) Any -mdejagnu-tune= usage should filter all -mtune= options.
>> It should not filter out any -mcpu= options.
>
> Like this:
>
> diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
> index 3b8941a8658..26874943795 100644
> --- a/gcc/config/rs6000/rs6000.h
> +++ b/gcc/config/rs6000/rs6000.h
> @@ -86,7 +86,7 @@
> RUNTESTFLAGS override those set in the testcases; with this option,
> the testcase will always win. Ditto for -mdejagnu-tune=. */
> #define DRIVER_SELF_SPECS \
> - "%{mdejagnu-cpu=*: %<mcpu=* -mcpu=%*}", \
> + "%{mdejagnu-cpu=*: %<mcpu=* %<mtune=* -mcpu=%*}", \
> "%{mdejagnu-tune=*: %<mtune=* -mtune=%*}", \
> "%{mdejagnu-*: %<mdejagnu-*}", \
> SUBTARGET_DRIVER_SELF_SPECS
>
>
> Kewen, can you see if the above patch fixes the issues you're seeing?
>
Thanks for the insightful comments and patch!
I confirmed that this proposed patch can fix those found test issues.
I adjusted the relevant comments and confirmed that it can be bootstrapped and
regtested on powerpc64-linux-gnu P7 and P8 and powerpc64le-linux-gnu P9 and P10.
Segher pre-approved it, I just committed it as r13-1818 as attached.
Will backport it to release branches in a week or so. Thanks again.
BR,
Kewen
From 75d20d6c84c12bedd65a904e462f02f0b9eb3f77 Mon Sep 17 00:00:00 2001
From: Peter Bergner <berg...@linux.ibm.com>
Date: Mon, 25 Jul 2022 00:51:44 -0500
Subject: [PATCH] rs6000: Adjust -mdejagnu-cpu to filter out -mtune [PR106345]
As PR106345 shows, when configuring compiler with an explicit
option --with-tune=<value>, it would cause some test cases to
fail if their test points are sensitive to tune setting, such
as: group_ending_nop, loop align etc. It doesn't help that
even to specify one explicit -mcpu=.
This patch is to adjust the behavior of -mdejagnu-cpu by
filtering out all -mcpu= and -mtune= options, then test cases
would use <cpu> as tune as the one specified by -mdejagnu-cpu.
2022-07-25 Peter Bergner <berg...@linux.ibm.com>
Kewen Lin <li...@linux.ibm.com>
PR testsuite/106345
gcc/ChangeLog:
* config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
to filter out all -mtune options.
---
gcc/config/rs6000/rs6000.h | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 7d04556304a..ad9bf0f7358 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -81,12 +81,15 @@
# define SUBTARGET_DRIVER_SELF_SPECS ""
#endif
-/* Only for use in the testsuite: -mdejagnu-cpu= simply overrides -mcpu=.
+/* Only for use in the testsuite: -mdejagnu-cpu=<value> filters out all
+ -mcpu= as well as -mtune= options then simply adds -mcpu=<value>,
+ while -mdejagnu-tune=<value> filters out all -mtune= options then
+ simply adds -mtune=<value>.
With older versions of Dejagnu the command line arguments you set in
- RUNTESTFLAGS override those set in the testcases; with this option,
- the testcase will always win. Ditto for -mdejagnu-tune=. */
+ RUNTESTFLAGS override those set in the testcases; with these options,
+ the testcase will always win. */
#define DRIVER_SELF_SPECS \
- "%{mdejagnu-cpu=*: %<mcpu=* -mcpu=%*}", \
+ "%{mdejagnu-cpu=*: %<mcpu=* %<mtune=* -mcpu=%*}", \
"%{mdejagnu-tune=*: %<mtune=* -mtune=%*}", \
"%{mdejagnu-*: %<mdejagnu-*}", \
SUBTARGET_DRIVER_SELF_SPECS
--
2.25.1