yaxunl added a comment.

In D71726#2165494 <https://reviews.llvm.org/D71726#2165494>, @jyknight wrote:

> In D71726#2165445 <https://reviews.llvm.org/D71726#2165445>, @yaxunl wrote:
>
> > In D71726#2165424 <https://reviews.llvm.org/D71726#2165424>, @jyknight 
> > wrote:
> >
> > > Why not have clang always emit atomicrmw for floats, and let 
> > > AtomicExpandPass handle legalizing that into integer atomics if 
> > > necessary, rather than adding a target hook in clang?
> >
> >
> > Not all targets can legalize fp atomics by AtomicExpandPass. Some targets 
> > need library support.
>
>
> That isn't true, because you can do so generically with a cmpxchg loop, 
> assuming that size of atomic is supported by the target. This might not be 
> the most efficient lowering choice, but it's always possible as a fallback. 
> (And if the size is too large, then AtomicExpandPass will lower the cmpxchg 
> to the libatomic call.)
>
> If a target wants to tell AtomicExpandPass that fp add/sub are supported, and 
> then lower the resulting ATOMIC_LOAD_FSUB sdag node into a libcall of its 
> choice, that's also ok (as long as the libcall is lock-free).


how about other fp types e.g. bf16, half, long double? Do we need to diagnose 
them or not?


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

https://reviews.llvm.org/D71726



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

Reply via email to