[cfe-commits] [PATCH] Add -fexcess-precision option.

Stephen Canon scanon at apple.com
Thu Jun 21 14:41:14 PDT 2012


On Jun 21, 2012, at 5:34 PM, Lang Hames <lhames at gmail.com> wrote:

> Hi Hal,
> 
> I object to 'never' because there may be cases in the future where we
> can determine that extra precision cannot change the result so we can
> use fma while maintaining strict standard compliance. 'strict' is much
> better.
> 
> That's two votes for 'strict'. I'm happy with that. :)
> 
> For an option whose job it is to set the default FP_CONTRACT state, I
> think that -ffp-contract=[no|yes|default] is the best. This makes the
> one-to-one correspondence clear to the user.
> 
> This flag isn't intended to set the default FP_CONTRACT behaviour, it's about providing FMA formation modes outside those described by FP_CONTRACT, in particular enabling aggressive formation of FMAs across expression boundaries. I had intended enable this aggressve FMA formation under the -fexcess-precision flag, but as Steve pointed out that flag is overly broad. 
> 
> So, proposal:
> 
> New flag: -ffuse-fp-ops={fast,standard,strict}.  Default value will be 'standard', which means following FP_CONTRACT rules.
> 
> When -ffuse-fp-ops=fast we form FMAs wherever they're profitable, regardless of the FP_CONTRACT state.
> When -ffuse-fp-ops=strict we form FMAs iff/when we can prove that the excess precision won't change the result (which to start with will mean never forming FMAs).
> 
> -ffast-math implies -ffuse-fp-ops=fast
> -fexcess-precision implies -ffuse-fp-ops=fast
> 
> Sound ok?

Sounds great!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120621/50205f87/attachment.html>


More information about the cfe-commits mailing list