[RFC] Fix PR28684
Joseph S. Myers
joseph@codesourcery.com
Tue Nov 14 20:27:00 GMT 2006
On Tue, 14 Nov 2006, Geert Bosch wrote:
> This is an entirely reasonable approach, as it gives the possibility
> of preventing reassociation in places where we care. For C99, there
> is the #pragma STDC CONTRACT OFF. Unfortunately, there is no
> infrastructure yet. We could either introduce flags per operation
> that indicate wether the operation may be contracted, or have a
> separate tree code that would indicate rounding to machine precision.
> (This would essentially be the Ada 'Machine attribute.)
LTO will need flags per operation or separate tree codes for various
things that are currently handled by command-line options in order to
handle optimizations between translation units that were compiled with
different options. (FP_CONTRACT doesn't currently have a command-line
option, but FENV_ACCESS has -frounding-math and CX_LIMITED_RANGE has
-fcx-limited-range.) Likewise it will need various things controlled by
langhooks to be explicit in the IR. It isn't yet at the stage of
implementing this sort of fine detail (rather at that of writing out and
reading in much simpler code), but in due course solutions to these
problems should be considered.
FP_CONTRACT may be on by default - but it refers to contraction within
source language expressions only, and after gimplification we don't
currently have that information; we may need some way to preserve it.
Similarly the IR doesn't record the information needed for Fortran
reassociation.
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Gcc-patches
mailing list