This is the mail archive of the
mailing list for the GCC project.
Re: Functions that are CSEable but not pure
On 10/03/2012 07:06 PM, Joseph S. Myers wrote:
On Wed, 3 Oct 2012, Jason Merrill wrote:
My implementation of dynamic initialization of TLS variables as mandated by
the C++11 and OpenMP standards uses this idiom implicitly, so I'd really like
to be able to optimize away multiple calls.
I'd thought that dynamic initialization of TLS variables was supposed to
need ELF gABI, C++ ABI, binutils and glibc support as per Jakub's comment
in bug 27557 - have you found a way to avoid needing those, or are you
actually discussing something else?
Handling it via init-on-first-use avoids the need for ELF and binutils
support. The interface needs to be specified in the C++ ABI, and I we
want glibc support for strict correctness (as with __cxa_atexit), but
the functionality can be implemented without it.