mibintc added a comment.


In D62731#1620174 <https://reviews.llvm.org/D62731#1620174>, @andrew.w.kaylor 
wrote:

> I'm not entirely caught up on this review. I've only read the most recent 
> comments, but I think I've got enough context to comment on the metadata 
> arguments.
>
> Based only on the fp-model command line options, the front end should only 
> ever use "round.dynamic" (for strict mode) or "round.tonearest" (where full 
> fenv access isn't permitted but we want to enable strict




In D62731#1620174 <https://reviews.llvm.org/D62731#1620174>, @andrew.w.kaylor 
wrote:

> I'm not entirely caught up on this review. I've only read the most recent 
> comments, but I think I've got enough context to comment on the metadata 
> arguments.
>
> Based only on the fp-model command line options, the front end should only 
> ever use "round.dynamic" (for strict mode) or "round.tonearest" (where full 
> fenv access isn't permitted but we want to enable strict exception 
> semantics). There are some pragmas, which I believe are in some draft of a 
> standards document but not yet approved, which can declare any of the other 
> rounding modes, but I don't know that we have plans to implement those yet. 
> I'm also hoping that at some point we'll have a pass that finds calls to 
> fesetround() and changes the metadata argument when it can prove what the 
> rounding mode will be.
>
> For the fp exception argument, the only values that can be implied by the 
> -fp-model option are "fpexcept.strict" and "fpexcept.ignore". In icc, we have 
> a separate option that can prevent speculation (equivalent to 
> "fpexcept.maytrap"). I think gcc's, -ftrapping-math has a similar function 
> (though the default may be reversed). I don't think we've talked about how 
> (or if) clang should ever get into the "fpexcept.maytrap" state.
>
> So for now, I think both arguments only need to support one of two states, 
> depending on the -fp-model arguments.




In D62731#1620174 <https://reviews.llvm.org/D62731#1620174>, @andrew.w.kaylor 
wrote:

> I'm not entirely caught up on this review. I've only read the most recent 
> comments, but I think I've got enough context to comment on the metadata 
> arguments.
>
> Based only on the fp-model command line options, the front end should only 
> ever use "round.dynamic" (for strict mode) or "round.tonearest" (where full 
> fenv access isn't permitted but we want to enable strict exception 
> semantics). There are some pragmas, which I believe are in some draft of a 
> standards document but not yet approved, which can declare any of the other 
> rounding modes, but I don't know that we have plans to implement those yet. 
> I'm also hoping that at some point we'll have a pass that finds calls to 
> fesetround() and changes the metadata argument when it can prove what the 
> rounding mode will be.
>
> For the fp exception argument, the only values that can be implied by the 
> -fp-model option are "fpexcept.strict" and "fpexcept.ignore". In icc, we have 
> a separate option that can prevent speculation (equivalent to 
> "fpexcept.maytrap"). I think gcc's, -ftrapping-math has a similar function 
> (though the default may be reversed). I don't think we've talked about how 
> (or if) clang should ever get into the "fpexcept.maytrap" state.
>
> So for now, I think both arguments only need to support one of two states, 
> depending on the -fp-model arguments.


@andrew.w.kaylor Thanks Andy.  Reminder -- in a private document you indicated 
to me that -fp-speculation=safe corresponds to the maytrap setting for the 
exception argument.  This patch is implemented with those semantics.


Repository:
  rL LLVM

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

https://reviews.llvm.org/D62731



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to