This adds an option -mdejagnu-cpu=.  This option simply overrides what
is given in -mcpu=.  The reason for this is that with older versions
of DejaGnu the value given in the RUNTESTFLAGS will override the value
a testcase wants to have.

Ill commit this patch with the first changelog, and also the result of
these two one-liners with the second changelog:

perl -ni -e 'print unless /dg-skip-if "do not override -mcpu"/' \
  $(find gcc/testsuite/gcc.target/powerpc/ -type f)
perl -pi -e 's/(dg-options.*)-mcpu=/\1-mdejagnu-cpu=/'  \
  $(find gcc/testsuite/gcc.target/powerpc/ -type f)


Segher


2019-03-01  Segher Boessenkool  <seg...@kernel.crashing.org>

        * config/rs6000/rs6000.c (rs6000_option_override_internal): If
        rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
        * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.


2019-03-01  Segher Boessenkool  <seg...@kernel.crashing.org>

gcc/testsuite/
        * gcc.target/powerpc/ throughout: Delete dg-skip-if "do not override
        -mcpu".  Use -mdejagnu-cpu= in dg-options instead of -mcpu=.

---
 gcc/config/rs6000/rs6000.c   | 3 +++
 gcc/config/rs6000/rs6000.opt | 7 +++++++
 2 files changed, 10 insertions(+)

diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index b1249bc..b489bef 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -3869,6 +3869,9 @@ rs6000_option_override_internal (bool global_init_p)
   /* Don't override by the processor default if given explicitly.  */
   set_masks &= ~rs6000_isa_flags_explicit;
 
+  if (global_init_p && rs6000_dejagnu_cpu_index >= 0)
+    rs6000_cpu_index = rs6000_dejagnu_cpu_index;
+
   /* Process the -mcpu=<xxx> and -mtune=<xxx> argument.  If the user changed
      the cpu in a target attribute or pragma, but did not specify a tuning
      option, use the cpu for the tuning option rather than the option specified
diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt
index 2e90bf3..f4b5c91 100644
--- a/gcc/config/rs6000/rs6000.opt
+++ b/gcc/config/rs6000/rs6000.opt
@@ -385,6 +385,13 @@ mtune=
 Target RejectNegative Joined Var(rs6000_tune_index) Init(-1) 
Enum(rs6000_cpu_opt_value) Save
 -mtune=        Schedule code for given CPU.
 
+; Only for use in the testsuite.  This simply overrides -mcpu=.  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.
+mdejagnu-cpu=
+Target Undocumented RejectNegative Joined Var(rs6000_dejagnu_cpu_index) 
Init(-1) Enum(rs6000_cpu_opt_value) Save
+
 mtraceback=
 Target RejectNegative Joined Enum(rs6000_traceback_type) Var(rs6000_traceback)
 -mtraceback=[full,part,no]     Select type of traceback table.
-- 
1.8.3.1

Reply via email to