IBM Z: Configure excess precision for float at compile-time
authorMarius Hillenbrand <mhillen@linux.ibm.com>
Tue, 1 Dec 2020 10:02:27 +0000 (11:02 +0100)
committerAndreas Krebbel <krebbel@linux.ibm.com>
Tue, 1 Dec 2020 10:29:09 +0000 (11:29 +0100)
commita5dd6b69fcbe74c02d4821ac2daf2b8c9f819f6e
tree78b146b12ca2fe39d2170da0e04c2eb9d1f9da52
parentcffd725c0eb44daa0234f3af39cd94ad97f2833d
IBM Z: Configure excess precision for float at compile-time

Historically, float_t has been defined as double on s390 and gcc would
emit double precision insns for evaluating float expressions when in
standard-compliant mode. Configure that behavior at compile-time as prep
for changes in glibc: When glibc ties float_t to double, keep the old
behavior; when glibc derives float_t from FLT_EVAL_METHOD (as on most
other archs), revert to the default behavior (i.e.,
FLT_EVAL_METHOD_PROMOTE_TO_FLOAT). Provide a configure option
--enable-s390-excess-float-precision to override the check.

gcc/ChangeLog:

2020-12-01  Marius Hillenbrand  <mhillen@linux.ibm.com>

* configure.ac: Add configure option
--enable-s390-excess-float-precision and check to derive default
from glibc.
* config/s390/s390.c: Guard s390_excess_precision with an ifdef
for ENABLE_S390_EXCESS_FLOAT_PRECISION.
* doc/install.texi: Document --enable-s390-excess-float-precision.
* configure: Regenerate.
* config.in: Regenerate.
gcc/config.in
gcc/config/s390/s390.c
gcc/configure
gcc/configure.ac
gcc/doc/install.texi