Hi!

On Fri, Feb 09, 2018 at 09:37:28AM +0000, Nick Clifton wrote:
> > I thought you were going to do a patch like the following, to make the
> > e500 cores less special (they are not):
> 
> Sorry - my bad.  I defer to your patch then.  Whatever it takes to get
> the BZ fixed and off the books... :-)

So does it work?  :-)  (I cannot reproduce the problem, there must be
something in your configuration I'm overlooking).


Segher


[ Here it is again, with changelog this time: ]


>From 44c3b661ef75e57415b10ca2cec5ac6427bbed8f Mon Sep 17 00:00:00 2001
Message-Id: 
<44c3b661ef75e57415b10ca2cec5ac6427bbed8f.1518109128.git.seg...@kernel.crashing.org>
From: Segher Boessenkool <seg...@kernel.crashing.org>
Date: Thu, 8 Feb 2018 16:58:33 +0000
Subject: [PATCH] Do not mess with rs6000_{single,double}_float (PR68028)

For e500 family cores we do some questionable things with those flags,
which does not work with LTO.  So don't.


2018-02-10  Segher Boessenkool  <seg...@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.

---
 gcc/config/rs6000/rs6000.c | 19 -------------------
 1 file changed, 19 deletions(-)

diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 5adccd2..73de617 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -4809,25 +4809,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)
-- 
1.8.3.1

Reply via email to