This matches ItaniumCXXABI.cpp. Perhaps this should be renamed
to _LIBCXXABI_GUARD_ABI_32BIT.
Fixes PR42680
Differential D64961
[libcxxabi] Define _LIBCXXABI_GUARD_ABI_ARM on WebAssembly sbc100 on Jul 18 2019, 4:30 PM. Authored by
Details This matches ItaniumCXXABI.cpp. Perhaps this should be renamed Fixes PR42680
Diff Detail
Event TimelineComment Actions ARM is the correct monacer for this configuration. The spec we're implementing was written by ARM. Can you elaborate a bit here about why we're choosing to deviate from the Itanium spec for WebAssembly? But my opinion isn't too strong on this. libc++abi has to support this configuration ad infinitum. Comment Actions My opinion isn't too strong here either. wasm32 doesn't need 8 bytes for this, and there's an existing ABI knob to use less, so it seems to make sense to use it. Comment Actions I think the main argument is space saving. Wasm cares more about minimizing the binary size and memory usage than most other platforms. I believe that was the original motivation for the arm abi too (they tend to be embedded and care more about doubling the overhead of each guard variable). The wasm32 ABI as implemented in clang and emscripten currently uses 4-byte guards so we can push back there and try to change the ABI there, or we can change libc++abi to comply the current de-facto ABI. I originally went with the option of changing clang (and emscripten): https://reviews.llvm.org/D64957 However I think as long as its documented the is no reason not so save a few bytes here in the WebAssembly case. |