[PATCH] D107994: Making the code compliant to the documentation about Floating Point support default values for C/C++. FPP-MODEL=PRECISE enables FFP-CONTRACT (FMA is enabled).
Zahira Ammarguellat via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Nov 15 05:44:34 PST 2021
zahiraam added a comment.
In D107994#3130494 <https://reviews.llvm.org/D107994#3130494>, @wristow wrote:
> The Release Note change here says:
>
> Floating Point Support in Clang
> -------------------------------
> - The -ffp-model=precise now implies -ffp-contract=on rather than
> -ffp-contract=fast, and the documentation of these features has been
> clarified. Previously, the documentation claimed that -ffp-model=precise was
> the default, but this was incorrect because the precise model implied
> -ffp-contract=fast, whereas the default behavior is -ffp-contract=on.
> -ffp-model=precise is now exactly the default mode of the compiler.
>
> Unless I'm missing something, there is a related change here that I think should be more overtly noted (given the discussions in this review, I //think// this additional change is understood/expected, but I'm surprised it's not pointed out explicitly -- so maybe I'm misunderstanding).
>
> Specifically, this commit explicitly sets `-ffp-contract=on` in the default mode (which is what the documentation said, and continues to say). But previously, there wasn't //any// explicit setting of `-ffp-contract` by default (and I think that lack of an explicit setting, was equivalent to `-ffp-contract=off`).
>
> So with this commit, we now enable FMA by default (even at `-O0`). Noting the semantic change that FMA is now being enabled by default seems sensible.
>
> Succinctly, in terms of the Release Note, the documentation claims that `-ffp-contract=on` is the default, but in fact the behavior //was// as though `-ffp-contract=off` was the default. The default now really is `-ffp-contract=on`.
>
> __________________
>
> Also, I see a relatively minor point about `-ffp-contract` in the Users Manual. It says that setting `-ffast-math` implies `-ffp-contract=fast`, and it says that setting `-ffp-model=fast` "Behaves identically to specifying both `-ffast-math` and `ffp-contract=fast`". But that's redundant, since `-ffast-math` already implies `-ffp-contract=fast`. That is, `-ffast-math` and `-ffp-model=fast` are equivalent.
@wristow Are you suggesting a change of wording in the ReleaseNotes?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D107994/new/
https://reviews.llvm.org/D107994
More information about the cfe-commits
mailing list