]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rs6000: Fix -mpower9-vector -mno-altivec ICE (PR87560)
authorBill Schmidt <wschmidt@linux.ibm.com>
Thu, 12 Mar 2020 20:28:50 +0000 (15:28 -0500)
committerBill Schmidt <wschmidt@linux.ibm.com>
Thu, 12 Mar 2020 20:28:50 +0000 (15:28 -0500)
PR87560 reports an ICE when a test case is compiled with -mpower9-vector
and -mno-altivec.  This patch terminates compilation with an error when
this combination (and other unreasonable ones) are requested.

Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no
regressions.  Reported error is now:

f951: Error: '-mno-altivec' turns off '-mpower9-vector'

2020-03-12  Bill Schmidt  <wschmidt@linux.ibm.com>

Backport from master
2020-03-02  Bill Schmidt  <wschmidt@linux.ibm.com>

PR target/87560
* rs6000-cpus.def (OTHER_ALTIVEC_MASKS): New #define.
* rs6000.c (rs6000_disable_incompatible_switches): Add table entry
for OPTION_MASK_ALTIVEC.

gcc/ChangeLog
gcc/config/rs6000/rs6000-cpus.def
gcc/config/rs6000/rs6000.c

index 603294bcd722f092b5aabddc6c7544f1ba75bf8c..92d5b0afb2e373194d7d83a2d10ce7f629b1653b 100644 (file)
@@ -1,3 +1,13 @@
+2020-03-12  Bill Schmidt  <wschmidt@linux.ibm.com>
+
+       Backport from master
+       2020-03-02  Bill Schmidt  <wschmidt@linux.ibm.com>
+
+       PR target/87560
+       * rs6000-cpus.def (OTHER_ALTIVEC_MASKS): New #define.
+       * rs6000.c (rs6000_disable_incompatible_switches): Add table entry
+       for OPTION_MASK_ALTIVEC.
+
 2020-03-12  Richard Earnshaw  <rearnsha@arm.com>
 
        Backport from master
index d0d69beafd4853c04dec03df0ffa6171fec164a8..47a5d0576d0da05993b318a006d0da671e959261 100644 (file)
                                 | OPTION_MASK_FLOAT128_KEYWORD         \
                                 | OPTION_MASK_P8_VECTOR)
 
+/* Flags that need to be turned off if -mno-altivec.  */
+#define OTHER_ALTIVEC_MASKS    (OTHER_VSX_VECTOR_MASKS                 \
+                                | OPTION_MASK_VSX)
+
 #define POWERPC_7400_MASK      (OPTION_MASK_PPC_GFXOPT | OPTION_MASK_ALTIVEC)
 
 /* Deal with ports that do not have -mstrict-align.  */
index d45294302cb94ad925b9fadc5f9e01ae23aa8ab0..04324ab981a29a50d6a6869cca7993b1afc1ea93 100644 (file)
@@ -37394,6 +37394,7 @@ rs6000_disable_incompatible_switches (void)
     { OPTION_MASK_P9_VECTOR,   OTHER_P9_VECTOR_MASKS,  "power9-vector" },
     { OPTION_MASK_P8_VECTOR,   OTHER_P8_VECTOR_MASKS,  "power8-vector" },
     { OPTION_MASK_VSX,         OTHER_VSX_VECTOR_MASKS, "vsx"           },
+    { OPTION_MASK_ALTIVEC,     OTHER_ALTIVEC_MASKS,    "altivec"       },
   };
 
   for (i = 0; i < ARRAY_SIZE (flags); i++)