This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Ada] Generate Machine, Model and Rounding FP attributes in line

On Fri, 1 Aug 2014, Arnaud Charlet wrote:

> This change makes it so that the Machine, Model and Rounding FP attributes
> are generated in line by the compiler (in conjunction with a conversion to
> an integer type for the third) and optimized on architectures that do not
> make use of internal extended precision in the FPU.

Using TARGET_FLT_EVAL_METHOD would be better than basing this on examining 
the machine modes (after all, on x86_64, you have XFmode but use of SSE 
means there are no excess previous issues; likewise, ia64 has XFmode but 
proper floating-point operations for all modes, including the formatOf 
operations that take wider operands and produce a narrower result without 
double rounding).

Except that S/390 defines TARGET_FLT_EVAL_METHOD to 1 for historical 
reasons (but doesn't, I think, actually have any excess precision issues 
with the back end - excess precision would only really be used for C with 
-fexcess-precision=standard), so strictly you'd need a different macro 
that differs from TARGET_FLT_EVAL_METHOD only on S/390 (i.e., a macro that 
describes what FLT_EVAL_METHOD is at back-end level rather than what it is 
at C API level with -fexcess-precision=standard).

Joseph S. Myers

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]