Do not mess with rs6000_{single,double}_float (PR68028)
authorSegher Boessenkool <segher@kernel.crashing.org>
Sun, 18 Feb 2018 14:29:05 +0000 (15:29 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Sun, 18 Feb 2018 14:29:05 +0000 (15:29 +0100)
For e500 family cores we do some questionable things with those flags,
which does not work with LTO.  So don't.

* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
handle rs6000_single_float and rs6000_double_float specially for
e500 family CPUs.

From-SVN: r257790

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index b47d282..044fbed 100644 (file)
@@ -1,3 +1,9 @@
+2018-02-18  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
+       handle rs6000_single_float and rs6000_double_float specially for
+       e500 family CPUs.
+
 2018-02-16  Jeff Law  <law@redhat.com>
 
        * config/rx/rx.c (add_pop_cfi_notes): New function.;
index 4a6c459..d0de4b5 100644 (file)
@@ -4820,25 +4820,6 @@ rs6000_option_override_internal (bool global_init_p)
   if (TARGET_DEBUG_REG || TARGET_DEBUG_TARGET)
     rs6000_print_isa_options (stderr, 0, "after subtarget", rs6000_isa_flags);
 
-  /* For the E500 family of cores, reset the single/double FP flags to let us
-     check that they remain constant across attributes or pragmas.  */
-
-  switch (rs6000_cpu)
-    {
-    case PROCESSOR_PPC8540:
-    case PROCESSOR_PPC8548:
-    case PROCESSOR_PPCE500MC:
-    case PROCESSOR_PPCE500MC64:
-    case PROCESSOR_PPCE5500:
-    case PROCESSOR_PPCE6500:
-      rs6000_single_float = 0;
-      rs6000_double_float = 0;
-      break;
-
-    default:
-      break;
-    }
-
   if (main_target_opt)
     {
       if (main_target_opt->x_rs6000_single_float != rs6000_single_float)