On Wed, Jul 2, 2014 at 11:13 PM, FX <fxcoud...@gmail.com> wrote:
> I’ve recently added IEEE support for the Fortran front-end and library. As 
> part of that, the front-end should be able to determine which of the 
> available floating-point types are IEEE-conforming [1]. Right now, I’ve taken 
> a conservative approach and only considered the target’s float_type_node and 
> double_type_node as IEEE modes, but I’d like to improve that (for example, to 
> include long double and binary128 modes on x86).
>
> How can I determine, from a “struct real_format”, whether it is an IEEE 
> format or not? I’ve looked through gcc/real.{h,c} but could find no clear 
> solution. If there is none, would it be okay to add a new bool field to the 
> structure, named “ieee” or “ieee_format”, to discriminate?

The TARGET_FLOAT_FORMAT macro was removed here [1], and it is expected
that HONOR_* macros are used instead.

Perhaps the easiest way is to use
TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P target hook. Maybe you
need to extend it to pass a mode to this hook. This way, target will
be able to signal if the mode is supported in the most flexible way.

[1] https://gcc.gnu.org/ml/gcc-patches/2008-08/msg00645.html

Uros.

Reply via email to