[PATCH] D87528: Enable '#pragma STDC FENV_ACCESS' in frontend cf. D69272 - Work in Progress

Melanie Blower via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 25 08:09:45 PDT 2020


mibintc added a comment.

In D87528#2270502 <https://reviews.llvm.org/D87528#2270502>, @sepavloff wrote:

>> @sepavloff Is it OK if I continue work on this item? Not sure about the protocol when continuing someone else's patch.
>
> It is OK for me. There is also an action in Phabricator "Commandeer Revision" to transfer ownership on a revision item.
>
> I don't think however that the implementation in frontend is the main obstacle for enabling the pragma. It is the part of the standard and is user visible, so clang must provide satisfactory support so that users could try this feature in real applications. This support mainly depends on the support of constrained intrinsics in IR and codegen.
>
> One of the probable ways to confirm the support is to build some pretty large project that uses floating point operations extensively, build it with option `-fp-model=strict` and check if it works. A good choice could be SPEC benchmarks. It would provide us with not only evidence of support but also with number how strict operations slow down execution. Maybe other projects may be used for this purpose, but I don't know such.

I tried using the 0924 version of the patch on an internal workload SPEC "cpu2017" and found that a few files failed to compile because of an error message on static initializer, like this: struct s { float f; }; static struct s x = {0.63};   Compiled with ffp-model=strict "initializer..is not a compile-time constant"


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D87528/new/

https://reviews.llvm.org/D87528



More information about the cfe-commits mailing list