This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Libitm issues porting to POWER8 HTM
- From: Patrick Marlier <patrick dot marlier at gmail dot com>
- To: Peter Bergner <bergner at vnet dot ibm dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, Andreas Krebbel <krebbel at linux dot ibm dot com>
- Date: Mon, 17 Jun 2013 09:34:36 +0200
- Subject: Re: Libitm issues porting to POWER8 HTM
- References: <1371257094 dot 1396 dot 189 dot camel at otta>
Hi Peter,
On Sat, Jun 15, 2013 at 2:44 AM, Peter Bergner <bergner@vnet.ibm.com> wrote:
> I'm currently implementing support for hardware transactional memory in
> the rs6000 backend for POWER8. Things seem to be mostly working, but I
> have run into a few issues I'm wondering whether other people are seeing.
It sounds great! Is it already publicly available?
> Finially, when compiling (static or non-static) static-ctor.C, I'm seeing:
>
> /home/bergner/gcc/gcc-fsf-mainline-htm/libitm/testsuite/libitm.c++/static_ctor.C:12:18: error: unsafe function call 'void __cxa_guard_release(long long int*)' within 'transaction_safe' function
> static int y = x;
> ^
> /home/bergner/gcc/gcc-fsf-mainline-htm/libitm/testsuite/libitm.c++/static_ctor.C:12:18: error: unsafe function call 'int __cxa_guard_acquire(long long int*)' within 'transaction_safe' function
>
> Does x86 not get calls to __cxa_guard_acquire and __cxa_guard_release for
> this access, so it doesn't see this error? To be honest, I'm not sure
> what we're supposed to do with this error.
Sorry I don't have answers to your previous questions (I may have in
the future when I will get a CPU with HTM).
About the last one, this fails for a long long time now (even on x86):
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51173
Indeed, static constructors are not transaction safe yet and we should
have a workaround for this...
--
Patrick