[PATCH] D56913: decoupling Freestanding atomic<T> from libatomic.a
Olivier Giroux via Phabricator
reviews at reviews.llvm.org
Fri Jan 18 17:27:33 PST 2019
__simt__ added a comment.
In D56913#1363801 <https://reviews.llvm.org/D56913#1363801>, @jfb wrote:
> One downside to forwarding layers is that if you don't have an always inline attribute, some build might not inline. This leads to code bloat and crappy codegen because the `memory_order` attribute is no longer a known `constexpr` value. Maybe we should have always inline?
>
> You don't define `LIBCXX_FREESTANDING` yet, right?
>
> I think at a high level this looks fine.
This reminded me that I needed the inline visibility macro on this.
I define LIBCXX_FREESTANDING in my tree. I've tested libcxx with it both ON and OFF.
I addressed some of your code comments as well.
The path that calls down to __c11_atomic is the main path. The path that calls down to __atomic is the fallback for when the C11 primitives aren't available -- this happens to be the case on my platform, I fake out the __atomic path.
Repository:
rCXX libc++
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D56913/new/
https://reviews.llvm.org/D56913
More information about the libcxx-commits
mailing list