[PATCH] D88913: [FPEnv] Use strictfp metadata in casting nodes

Kevin P. Neal via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 6 12:05:55 PDT 2020


kpn created this revision.
kpn added reviewers: sepavloff, mibintc, rjmccall.
kpn added a project: clang.
Herald added subscribers: llvm-commits, cfe-commits.
Herald added a project: LLVM.
kpn requested review of this revision.

The strictfp metadata was added to the casting AST nodes in D85960 <https://reviews.llvm.org/D85960>, but we aren't using that metadata yet. This patch adds that support.

In order to avoid lots of ad-hoc passing around of the strictfp bits I updated the IRBuilder when moving from a function that has the Expr* to a function that lacks it. I believe we should switch to this pattern to keep the strictfp support from being overly invasive.

For the purpose of testing that we're picking up the right metadata, I also made my tests use a pragma to make the AST's strictfp metadata not match the global strictfp metadata. This exposes issues that we need to deal with in subsequent patches, and I believe this is the right method for most all of our clang strictfp tests.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D88913

Files:
  clang/lib/CodeGen/CGExpr.cpp
  clang/lib/CodeGen/CGExprScalar.cpp
  clang/lib/CodeGen/CodeGenFunction.cpp
  clang/lib/CodeGen/CodeGenFunction.h
  clang/lib/Sema/SemaExpr.cpp
  clang/test/CodeGen/aarch64-v8.2a-neon-intrinsics-constrained.c
  clang/test/CodeGen/builtin_float_strictfp.c
  clang/test/CodeGen/complex-math-strictfp.c
  clang/test/CodeGen/complex-strictfp.c
  clang/test/CodeGen/constrained-math-builtins.c
  clang/test/CodeGen/exprs-strictfp.c
  clang/test/CodeGen/fp16-ops-strictfp.c
  clang/test/CodeGen/incdec-strictfp.c
  clang/test/CodeGen/ubsan-conditional-strictfp.c
  clang/test/CodeGen/zvector-strictfp.c
  llvm/include/llvm/IR/IRBuilder.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88913.296512.patch
Type: text/x-patch
Size: 163666 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201006/1f67281c/attachment.bin>


More information about the llvm-commits mailing list