ping-2: [PATCH] c-family: Add more predefined macros for math flags
H.J. Lu
hjl.tools@gmail.com
Wed Jul 14 12:42:01 GMT 2021
On Wed, Jul 14, 2021 at 12:32 AM Matthias Kretz <m.kretz@gsi.de> wrote:
>
> OK?
>
> On Wednesday, 30 June 2021 10:59:28 CEST Matthias Kretz wrote:
> > Library code, especially in headers, sometimes needs to know how the
> > compiler interprets / optimizes floating-point types and operations.
> > This information can be used for additional optimizations or for
> > ensuring correctness. This change makes -freciprocal-math,
> > -fno-signed-zeros, -fno-trapping-math, -fassociative-math, and
> > -frounding-math report their state via corresponding pre-defined macros.
> >
> > Signed-off-by: Matthias Kretz <m.kretz@gsi.de>
> >
> > gcc/testsuite/ChangeLog:
> >
> > * gcc.dg/associative-math-1.c: New test.
> > * gcc.dg/associative-math-2.c: New test.
> > * gcc.dg/no-signed-zeros-1.c: New test.
> > * gcc.dg/no-signed-zeros-2.c: New test.
> > * gcc.dg/no-trapping-math-1.c: New test.
> > * gcc.dg/no-trapping-math-2.c: New test.
> > * gcc.dg/reciprocal-math-1.c: New test.
> > * gcc.dg/reciprocal-math-2.c: New test.
> > * gcc.dg/rounding-math-1.c: New test.
> > * gcc.dg/rounding-math-2.c: New test.
> >
> > gcc/c-family/ChangeLog:
> >
> > * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Define or
> > undefine __RECIPROCAL_MATH__, __NO_SIGNED_ZEROS__,
> > __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, and
> > __ROUNDING_MATH__ according to the new optimization flags.
> >
> > gcc/ChangeLog:
> >
> > * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
> > Define __RECIPROCAL_MATH__, __NO_SIGNED_ZEROS__,
> > __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, and
> > __ROUNDING_MATH__ according to their corresponding flags.
> > * doc/cpp.texi: Document __RECIPROCAL_MATH__,
> > __NO_SIGNED_ZEROS__, __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__,
> > and __ROUNDING_MATH__.
> > ---
> > gcc/c-family/c-cppbuiltin.c | 25 +++++++++++++++++++++++
> > gcc/cppbuiltin.c | 10 +++++++++
> > gcc/doc/cpp.texi | 18 ++++++++++++++++
> > gcc/testsuite/gcc.dg/associative-math-1.c | 17 +++++++++++++++
> > gcc/testsuite/gcc.dg/associative-math-2.c | 17 +++++++++++++++
> > gcc/testsuite/gcc.dg/no-signed-zeros-1.c | 17 +++++++++++++++
> > gcc/testsuite/gcc.dg/no-signed-zeros-2.c | 17 +++++++++++++++
> > gcc/testsuite/gcc.dg/no-trapping-math-1.c | 17 +++++++++++++++
> > gcc/testsuite/gcc.dg/no-trapping-math-2.c | 17 +++++++++++++++
> > gcc/testsuite/gcc.dg/reciprocal-math-1.c | 17 +++++++++++++++
> > gcc/testsuite/gcc.dg/reciprocal-math-2.c | 17 +++++++++++++++
> > gcc/testsuite/gcc.dg/rounding-math-1.c | 17 +++++++++++++++
> > gcc/testsuite/gcc.dg/rounding-math-2.c | 17 +++++++++++++++
> > 13 files changed, 223 insertions(+)
> > create mode 100644 gcc/testsuite/gcc.dg/associative-math-1.c
> > create mode 100644 gcc/testsuite/gcc.dg/associative-math-2.c
> > create mode 100644 gcc/testsuite/gcc.dg/no-signed-zeros-1.c
> > create mode 100644 gcc/testsuite/gcc.dg/no-signed-zeros-2.c
> > create mode 100644 gcc/testsuite/gcc.dg/no-trapping-math-1.c
> > create mode 100644 gcc/testsuite/gcc.dg/no-trapping-math-2.c
> > create mode 100644 gcc/testsuite/gcc.dg/reciprocal-math-1.c
> > create mode 100644 gcc/testsuite/gcc.dg/reciprocal-math-2.c
> > create mode 100644 gcc/testsuite/gcc.dg/rounding-math-1.c
> > create mode 100644 gcc/testsuite/gcc.dg/rounding-math-2.c
>
>
Hi Hongtao,
Can this be used to address
https://gcc.gnu.org/pipermail/gcc/2021-July/236778.html
--
H.J.
More information about the Gcc-patches
mailing list