[all-commits] [llvm/llvm-project] d4ce86: Reland "[FPEnv][Clang][Driver] Disable constrained...

Kevin P. Neal via All-commits all-commits at lists.llvm.org
Fri Jul 10 05:50:59 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: d4ce862f2aa8b7e4b11462bd72014b08ab9468b3
      https://github.com/llvm/llvm-project/commit/d4ce862f2aa8b7e4b11462bd72014b08ab9468b3
  Author: Kevin P. Neal <kevin.neal at sas.com>
  Date:   2020-07-10 (Fri, 10 Jul 2020)

  Changed paths:
    M clang/docs/ClangCommandLineReference.rst
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/include/clang/Basic/DiagnosticFrontendKinds.td
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/LangOptions.def
    M clang/include/clang/Basic/TargetInfo.h
    M clang/include/clang/Driver/Options.td
    M clang/lib/Basic/TargetInfo.cpp
    M clang/lib/Basic/Targets/SystemZ.h
    M clang/lib/Basic/Targets/X86.h
    M clang/lib/Frontend/CompilerInstance.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/test/CodeGen/aarch64-neon-misc-constrained.c
    M clang/test/CodeGen/aarch64-neon-scalar-x-indexed-elem-constrained.c
    M clang/test/CodeGen/aarch64-v8.2a-neon-intrinsics-constrained.c
    M clang/test/CodeGen/arm-neon-directed-rounding-constrained.c
    M clang/test/CodeGen/arm64-vrnd-constrained.c
    M clang/test/CodeGen/builtins-ppc-fpconstrained.c
    A clang/test/CodeGen/fp-strictfp-exp.cpp
    A clang/test/CodeGen/fp-strictfp.cpp
    M clang/test/CodeGen/fpconstrained-cmp-double.c
    M clang/test/CodeGen/fpconstrained-cmp-float.c
    M clang/test/CodeGen/fpconstrained.c
    M clang/test/CodeGen/fpconstrained.cpp

  Log Message:
  -----------
  Reland "[FPEnv][Clang][Driver] Disable constrained floating point on targets lacking support."

We currently have strict floating point/constrained floating point enabled
for all targets. Constrained SDAG nodes get converted to the regular ones
before reaching the target layer. In theory this should be fine.

However, the changes are exposed to users through multiple clang options
already in use in the field, and the changes are _completely_ _untested_
on almost all of our targets. Bugs have already been found, like
"https://bugs.llvm.org/show_bug.cgi?id=45274".

This patch disables constrained floating point options in clang everywhere
except X86 and SystemZ. A warning will be printed when this happens.

Use the new -fexperimental-strict-floating-point flag to force allowing
strict floating point on hosts that aren't already marked as supporting
it (X86 and SystemZ).

Differential Revision: https://reviews.llvm.org/D80952




More information about the All-commits mailing list