This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[trans-mem] Rename/split __transaction into __transaction_atomic and __transaction_relaxed.


The attached patch renames/splits __transaction (with optional
[[atomic]] and [[relaxed]] attributes) into two keywords that explicitly
select an atomic or relaxed transaction, with no default. This is a
recent change in the C++ TM spec.

patch10: Contains all the work on the GCC side. I do keep the single
internal transaction construct together with the internal flags for
relaxed and atomic outer transactions, but the parser is changed to only
accept the new syntax.

patch11: Adjusts the syntax used in the libitm test cases accordingly.

Several ICEs in the TM tests on C++, but I think they are old. C TM
tests work except some missing optimizations (old failures too).
c-c++-common/tm/wrap-[12].c fail on C++, but not on C:
wrap-1.c:5:57: error: 'transaction_wrap' argument not an identifier
I believe this is an old error too?
(I don't yet have a testcase summary of before the changes, so I can't
compare properly. But will send an follow-up if there are regressions.)

OK for branch?

Attachment: patch10
Description: Text document

Attachment: patch11
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]