summaryrefslogtreecommitdiffstats
path: root/libitm/method-gl.cc
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright years in libitm/rsandifo2014-01-021-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206298 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyright in libitm.rsandifo2013-02-031-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195697 138bc75d-0d04-0410-961f-82ee72b054a4
* Ask dispatch whether it requires serial mode.torvald2012-10-241-1/+1
| | | | | | | | | | | | | | | * retry.cc (gtm_thread::decide_begin_dispatch): Ask dispatch whether it requires serial mode instead of assuming that for certain dispatchs. * dispatch.h (abi_dispatch::requires_serial): New. (abi_dispatch::abi_dispatch): Adapt. * method-gl.cc (gl_wt_dispatch::gl_wt_dispatch): Adapt. * method-ml.cc (ml_wt_dispatch::ml_wt_dispatch): Same. * method-serial.cc (serialirr_dispatch::serialirr_dispatch, serial_dispatch::serial_dispatch, serialirr_onwrite_dispatch::serialirr_onwrite_dispatch): Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192777 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Put gl_wt global lock on separate cache line.torvald2012-02-201-2/+2
| | | | | | | libitm/ * method-gl.cc (gl_wt_dispatch::orec): Put on separate cacheline. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184403 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Optimize synchronization in gl_wt rollback.torvald2012-02-201-12/+16
| | | | | | | libitm/ * method-gl.cc (gl_wt_dispatch::rollback): Optimize memory orders. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184402 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Remove obsolete handling of prior serial lock corner cases in gl_wt.torvald2012-02-201-28/+5
| | | | | | | | | libitm/ * method-gl.cc (gl_wt_dispatch::trycommit): Remove handling of serial mode corner cases made obsolete by prior gtm_rwlock changes. (gl_wt_dispatch.rollback): Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184401 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Optimize memory order requiremens in gl_wt pre_write.torvald2012-02-201-3/+14
| | | | | | | libtim/ * method-gl.cc (gl_wt_dispatch::pre_write): Optimize memory orders. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184400 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Add missing undo-logging of RfW src regions in gl_wt memtransfer.torvald2012-02-201-8/+11
| | | | | | | | libitm/ * method-gl.cc (gl_wt_dispatch::memtransfer_static): Add missing undo for RfW src. Optimize number of calls to gtm_thr. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184399 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Optimize undo log.torvald2012-01-081-4/+3
| | | | | | | | | | | | | | | | | | | | | | libitm/ * local.cc (GTM_LB): Use GTM::gtm_undolog. (GTM::gtm_thread::drop_references_undolog): Remove. (GTM::gtm_thread::commit_undolog, GTM::gtm_thread::rollback_undolog): Move to ... * libitm_i.h (GTM::gtm_undolog): ...here. New. (GTM::gtm_undolog_entry): Remove. (GTM::gtm_thread): Adapt. * beginend.cc (GTM::gtm_thread::rollback): Adapt. (GTM::gtm_thread::trycommit): Adapt. * method-serial.cc (serial_dispatch::log): Adapt. * method-gl.cc (gl_wt_dispatch::pre_write): Adapt. (gl_wt_dispatch::store): Fix likely/unlikely. * containers.h (GTM::vector::resize): Add additional_capacity parameter and handle it. (GTM::vector::resize_noinline): New/adapt. (GTM::vector::push): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182992 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Fixed conversion to C++11 atomics.torvald2011-12-241-14/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libitm/ * beginend.cc (GTM::gtm_thread::begin_transaction): Add comment. (GTM::gtm_thread::try_commit): Changed memory order. * config/linux/alpha/futex_bits.h (sys_futex0): Take atomic int as parameter. * config/linux/x86/futex_bits.h (sys_futex0): Same. * config/linux/sh/futex_bits.h (sys_futex0): Same. * config/linux/futex_bits.h (sys_futex0): Same. * config/linux/futex.cc (futex_wait, futex_wake): Same. * config/linux/futex.h (futex_wait, futex_wake): Same. * config/linux/rwlock.h (gtm_rwlock::writers, gtm_rwlock::writer_readers, gtm_rwlock::readers): Change to atomic ints. * config/linux/rwlock.cc (gtm_rwlock::read_lock, gtm_rwlock::write_lock_generic, gtm_rwlock::read_unlock, gtm_rwlock::write_unlock): Fix memory orders and fences. * config/posix/rwlock.cc (gtm_rwlock::read_lock, gtm_rwlock::write_lock_generic, gtm_rwlock::read_unlock, gtm_rwlock::write_unlock): Same. * config/linux/rwlock.h (gtm_rwlock::summary): Change to atomic int. * method-gl.cc (gl_mg::init, gl_wt_dispatch::memtransfer_static, gl_wt_dispatch::memset_static, gl_wt_dispatch::begin_or_restart): Add comments. (gl_wt_dispatch::pre_write, gl_wt_dispatch::validate, gl_wt_dispatch::load, gl_wt_dispatch::store, gl_wt_dispatch::try_commit, gl_wt_dispatch::rollback): Fix memory orders and fences. Add comments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182674 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Conversion to c++11 atomics.rth2011-12-131-39/+36
| | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182294 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge from transactional-memory branch.aldyh2011-11-081-0/+303
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181154 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud