aboutsummaryrefslogtreecommitdiff
path: root/libitm/libitm_i.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2011-12-13 11:11:25 -0800
committerRichard Henderson <rth@gcc.gnu.org>2011-12-13 11:11:25 -0800
commit36cfbee133027429a681ce585643d38228ab1213 (patch)
tree7506d65c4a5b0a1a5cd4450e48e4943360f9ab19 /libitm/libitm_i.h
parentc36cc670b57fa6ebfcc387732fb7e34b7881eb14 (diff)
downloadgcc-36cfbee133027429a681ce585643d38228ab1213.zip
gcc-36cfbee133027429a681ce585643d38228ab1213.tar.gz
gcc-36cfbee133027429a681ce585643d38228ab1213.tar.bz2
libitm: Conversion to c++11 atomics.
* local_atomic: New file. * libitm_i.h: Include it. (gtm_thread::shared_state): Use atomic template. * beginend.cc (GTM::gtm_clock): Use atomic template. (global_tid): Use atomic template if 64-bit atomics available. (gtm_thread::gtm_thread): Update shared_state access. (gtm_thread::trycommit): Likewise. (choose_code_path): Update global_tid access. * method-gl.cc (gl_mg::orec): Use atomic template. Update all users. * stmlock.h (GTM::gtm_clock): Use atomic template. (gtm_get_clock, gtm_inc_clock): Update accesses. * config/linux/rwlock.cc (gtm_rwlock::read_lock): Remove redundant __sync_synchronize after atomic shared_state access. * config/posix/rwlock.cc (gtm_rwlock::read_lock): Likewise. (gtm_rwlock::write_lock_generic): Likewise. (gtm_rwlock::read_unlock): Likewise. * config/alpha/target.h (atomic_read_barrier): Remove. (atomic_write_barrier): Remove. * config/x86/target.h (atomic_read_barrier): Remove. (atomic_write_barrier): Remove. From-SVN: r182294
Diffstat (limited to 'libitm/libitm_i.h')
-rw-r--r--libitm/libitm_i.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/libitm/libitm_i.h b/libitm/libitm_i.h
index ff6884e..d57872e 100644
--- a/libitm/libitm_i.h
+++ b/libitm/libitm_i.h
@@ -37,6 +37,7 @@
#include <string.h>
#include <unwind.h>
#include "local_type_traits"
+#include "local_atomic"
#include "common.h"
@@ -206,7 +207,7 @@ struct gtm_thread
// If this transaction is inactive, shared_state is ~0. Otherwise, this is
// an active or serial transaction.
- gtm_word shared_state;
+ atomic<gtm_word> shared_state;
// The lock that provides access to serial mode. Non-serialized
// transactions acquire read locks; a serialized transaction aquires