[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