[PATCH] D20457: Update -ffast-math documentation to match reality.
Richard Smith via cfe-commits
cfe-commits at lists.llvm.org
Thu May 19 18:38:15 PDT 2016
On Thu, May 19, 2016 at 6:11 PM, Justin Lebar via cfe-commits <
cfe-commits at lists.llvm.org> wrote:
> jlebar created this revision.
> jlebar added a reviewer: rsmith.
> jlebar added a subscriber: cfe-commits.
>
> http://reviews.llvm.org/D20457
>
> Files:
> include/clang/Basic/LangOptions.def
> include/clang/Driver/Options.td
>
> Index: include/clang/Driver/Options.td
> ===================================================================
> --- include/clang/Driver/Options.td
> +++ include/clang/Driver/Options.td
> @@ -592,9 +592,13 @@
> def : Flag<["-"], "fno-extended-identifiers">, Group<f_Group>,
> Flags<[Unsupported]>;
> def fhosted : Flag<["-"], "fhosted">, Group<f_Group>;
> def ffast_math : Flag<["-"], "ffast-math">, Group<f_Group>,
> Flags<[CC1Option]>,
> - HelpText<"Enable the *frontend*'s 'fast-math' mode. This has no effect
> on "
> - "optimizations, but provides a preprocessor macro
> __FAST_MATH__ the "
> - "same as GCC's -ffast-math flag">;
> + HelpText<"Enable fast-math mode. This defines the __FAST_MATH__
> preprocessor "
> + "macro, and lets the compiler make aggressive, potentially
> unsafe "
> + "assumptions about floating-point math. These include: "
> + "Floating-point math obeys regular algebraic rules for real "
> + "numbers (e.g. + and * are associative, and x/y == x * (1/y)),
> "
> + "operands to fp operations are not equal to NaN and Inf, and
> +0 "
> + "and -0 are interchangeable.">;
>
This is significantly too long for HelpText. The current help text for this
flag is already too long:
$ clang --help
[...]
-fembed-bitcode Embed LLVM IR bitcode as data
-femit-all-decls Emit all declarations, even if unused
-femulated-tls Use emutls functions to access thread_local
variables
-fexceptions Enable support for exception handling
-ffast-math Enable the *frontend*'s 'fast-math' mode. This
has no effect on optimizations, but provides a preprocessor macro
__FAST_MATH__ the same as GCC's -ffast-math flag
-ffixed-r9 Reserve the r9 register (ARM only)
-ffixed-x18 Reserve the x18 register (AArch64 only)
[...]
Can you move this to UsersManual.rst instead, and put something short here
instead, like "Allow aggressive, lossy floating-point optimizations"?
def fno_fast_math : Flag<["-"], "fno-fast-math">, Group<f_Group>;
> def fmath_errno : Flag<["-"], "fmath-errno">, Group<f_Group>,
> Flags<[CC1Option]>,
> HelpText<"Require math functions to indicate errors by setting errno">;
> Index: include/clang/Basic/LangOptions.def
> ===================================================================
> --- include/clang/Basic/LangOptions.def
> +++ include/clang/Basic/LangOptions.def
> @@ -162,7 +162,7 @@
> COMPATIBLE_LANGOPT(GNUInline , 1, 0, "GNU inline semantics")
> COMPATIBLE_LANGOPT(NoInlineDefine , 1, 0, "__NO_INLINE__ predefined
> macro")
> COMPATIBLE_LANGOPT(Deprecated , 1, 0, "__DEPRECATED predefined
> macro")
> -COMPATIBLE_LANGOPT(FastMath , 1, 0, "__FAST_MATH__ predefined
> macro")
> +COMPATIBLE_LANGOPT(FastMath , 1, 0, "Fast fp math optimizations,
> and __FAST_MATH__ predefined macro")
>
Something like "fast FP math [...]" would fit better into the diagnostics
where this appears.
> COMPATIBLE_LANGOPT(FiniteMathOnly , 1, 0, "__FINITE_MATH_ONLY__
> predefined macro")
> COMPATIBLE_LANGOPT(UnsafeFPMath , 1, 0, "Unsafe Floating Point Math")
>
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160519/59a2b2a9/attachment.html>
More information about the cfe-commits
mailing list