Re: [Patch] Remove all uses of TARGET_FLT_EVAL_METHOD_NON_DEFAULT and poison it

2016-09-28 Thread Joseph Myers
On Wed, 28 Sep 2016, James Greenhalgh wrote:

> On Thu, Sep 22, 2016 at 05:55:21PM +, Joseph Myers wrote:
> > On Thu, 22 Sep 2016, James Greenhalgh wrote:
> > 
> > > The relaxation isn't portable, and keeping it in place is tricky, so this
> > > patch removes it, and poisons TARGET_FLT_EVAL_METHOD_NON_DEFAULT in
> > > system.h to prevent future use.
> > > 
> > > Bootstrapped and tested on x86_64 with 
> > > --enable-languages=all,ada,go,obj-c++
> > > with no issues.
> > > 
> > > OK?
> > 
> > OK.
> 
> Hi Joseph,
> 
> Is this OK sufficient for me to commit the patch, or must I wait for input
> from the other CCed front-end maintainers?

It is sufficient for you to commit the patch.

-- 
Joseph S. Myers
jos...@codesourcery.com


Re: [Patch] Remove all uses of TARGET_FLT_EVAL_METHOD_NON_DEFAULT and poison it

2016-09-28 Thread James Greenhalgh
On Thu, Sep 22, 2016 at 05:55:21PM +, Joseph Myers wrote:
> On Thu, 22 Sep 2016, James Greenhalgh wrote:
> 
> > The relaxation isn't portable, and keeping it in place is tricky, so this
> > patch removes it, and poisons TARGET_FLT_EVAL_METHOD_NON_DEFAULT in
> > system.h to prevent future use.
> > 
> > Bootstrapped and tested on x86_64 with --enable-languages=all,ada,go,obj-c++
> > with no issues.
> > 
> > OK?
> 
> OK.

Hi Joseph,

Is this OK sufficient for me to commit the patch, or must I wait for input
from the other CCed front-end maintainers?

Thanks,
James



Re: [Patch] Remove all uses of TARGET_FLT_EVAL_METHOD_NON_DEFAULT and poison it

2016-09-22 Thread Joseph Myers
On Thu, 22 Sep 2016, James Greenhalgh wrote:

> The relaxation isn't portable, and keeping it in place is tricky, so this
> patch removes it, and poisons TARGET_FLT_EVAL_METHOD_NON_DEFAULT in
> system.h to prevent future use.
> 
> Bootstrapped and tested on x86_64 with --enable-languages=all,ada,go,obj-c++
> with no issues.
> 
> OK?

OK.

-- 
Joseph S. Myers
jos...@codesourcery.com


[Patch] Remove all uses of TARGET_FLT_EVAL_METHOD_NON_DEFAULT and poison it

2016-09-22 Thread James Greenhalgh

Hi,

I'm going to hookize TARGET_FLT_EVAL_METHOD, so the current definition
of TARGET_FLT_EVAL_METHOD_NON_DEFAULT will stop working.

I looked in to ways of redefining this macro, but each that I explored would
require pulling in target.h in front-ends that don't otherwise need it.

Rather than do that, I thought about the purpose of this macro, which is
to permit a relaxation of the rule that -fexcess-precision=standard
requires front-end specific code to work if the target had no definition of
TARGET_FLT_EVAL_METHOD. That makes -fexcess-precision=standard with a
language other than C not-portable, and in particular it won't work with
any of the i386 backend targets.

The relaxation isn't portable, and keeping it in place is tricky, so this
patch removes it, and poisons TARGET_FLT_EVAL_METHOD_NON_DEFAULT in
system.h to prevent future use.

Bootstrapped and tested on x86_64 with --enable-languages=all,ada,go,obj-c++
with no issues.

OK?

Thanks,
James

---

gcc/

2016-09-22  James Greenhalgh  

* defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
* system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.

gcc/c-family/

2016-09-22  James Greenhalgh  

* c-opts.c (c_common_post_options): Remove special case for
TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard
in C++.

gcc/java/

2016-09-22  James Greenhalgh  

* lang.c (java_post_options): Remove special case for
TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard.

gcc/fortran/

2016-09-22  James Greenhalgh  

* options.c (gfc_post_options): Remove special case for
TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard.

gcc/ada/

2016-09-22  James Greenhalgh  

* gcc-interface/misc.c (gnat_post_options): Remove special case for
TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard.

diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c
index b240bc5..236a083 100644
--- a/gcc/ada/gcc-interface/misc.c
+++ b/gcc/ada/gcc-interface/misc.c
@@ -255,8 +255,7 @@ static bool
 gnat_post_options (const char **pfilename ATTRIBUTE_UNUSED)
 {
   /* Excess precision other than "fast" requires front-end support.  */
-  if (flag_excess_precision_cmdline == EXCESS_PRECISION_STANDARD
-  && TARGET_FLT_EVAL_METHOD_NON_DEFAULT)
+  if (flag_excess_precision_cmdline == EXCESS_PRECISION_STANDARD)
 sorry ("-fexcess-precision=standard for Ada");
   flag_excess_precision_cmdline = EXCESS_PRECISION_FAST;
 
diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c
index e83944c..5fe3132 100644
--- a/gcc/c-family/c-opts.c
+++ b/gcc/c-family/c-opts.c
@@ -770,8 +770,7 @@ c_common_post_options (const char **pfilename)
  support.  */
   if (c_dialect_cxx ())
 {
-  if (flag_excess_precision_cmdline == EXCESS_PRECISION_STANDARD
-	  && TARGET_FLT_EVAL_METHOD_NON_DEFAULT)
+  if (flag_excess_precision_cmdline == EXCESS_PRECISION_STANDARD)
 	sorry ("-fexcess-precision=standard for C++");
   flag_excess_precision_cmdline = EXCESS_PRECISION_FAST;
 }
diff --git a/gcc/defaults.h b/gcc/defaults.h
index af8fe91..c62c844 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -963,11 +963,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define REG_WORDS_BIG_ENDIAN WORDS_BIG_ENDIAN
 #endif
 
-#ifdef TARGET_FLT_EVAL_METHOD
-#define TARGET_FLT_EVAL_METHOD_NON_DEFAULT 1
-#else
+#ifndef TARGET_FLT_EVAL_METHOD
 #define TARGET_FLT_EVAL_METHOD 0
-#define TARGET_FLT_EVAL_METHOD_NON_DEFAULT 0
 #endif
 
 #ifndef TARGET_DEC_EVAL_METHOD
diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c
index 4aa8303..1b6984f 100644
--- a/gcc/fortran/options.c
+++ b/gcc/fortran/options.c
@@ -209,8 +209,7 @@ gfc_post_options (const char **pfilename)
 
   /* Excess precision other than "fast" requires front-end
  support.  */
-  if (flag_excess_precision_cmdline == EXCESS_PRECISION_STANDARD
-  && TARGET_FLT_EVAL_METHOD_NON_DEFAULT)
+  if (flag_excess_precision_cmdline == EXCESS_PRECISION_STANDARD)
 sorry ("-fexcess-precision=standard for Fortran");
   flag_excess_precision_cmdline = EXCESS_PRECISION_FAST;
 
diff --git a/gcc/java/lang.c b/gcc/java/lang.c
index 1c6dde4..65025ee 100644
--- a/gcc/java/lang.c
+++ b/gcc/java/lang.c
@@ -569,8 +569,7 @@ java_post_options (const char **pfilename)
 
   /* Excess precision other than "fast" requires front-end
  support.  */
-  if (flag_excess_precision_cmdline == EXCESS_PRECISION_STANDARD
-  && TARGET_FLT_EVAL_METHOD_NON_DEFAULT)
+  if (flag_excess_precision_cmdline == EXCESS_PRECISION_STANDARD)
 sorry ("-fexcess-precision=standard for Java");
   flag_excess_precision_cmdline = EXCESS_PRECISION_FAST;
 
diff --git a/gcc/system.h b/gcc/system.h
index 8a17197..e8f4dd9 100644
--- a/gcc/system.h
+++ b/gcc/system.h