summaryrefslogtreecommitdiff
path: root/libitm/config
Commit message (Collapse)AuthorAgeFilesLines
* gcc/uros2012-07-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | 2012-07-03 Uros Bizjak <ubizjak@gmail.com> * config/i386/xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause. libgomp/ 2012-07-03 Uros Bizjak <ubizjak@gmail.com> * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause. * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto. libitm/ 2012-07-03 Uros Bizjak <ubizjak@gmail.com> * config/x86/target.h (cpu_relax): Use __builtin_ia32_pause. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189194 138bc75d-0d04-0410-961f-82ee72b054a4
* Use long long in gtm_jmpbuf for x86-64hjl2012-04-041-7/+7
| | | | | | | | | | | 2012-04-04 H.J. Lu <hongjiu.lu@intel.com> PR libitm/52854 * config/x86/target.h (gtm_jmpbuf): Replace long with long long for x86-64. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186140 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Fix lost wake-up in serial lock.torvald2012-03-131-0/+26
| | | | | | | | PR libitm/52526 * config/linux/rwlock.cc (GTM::gtm_rwlock::read_lock): Fix lost wake-up. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185358 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/x86/target.h (GTM_longjmp): Correct the .cfi corrections.rth2012-02-141-5/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184227 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/x86/target.h (GTM_longjmp): Correct .cfi directives.uros2012-02-141-3/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184220 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/target.h (cpu_relax): Read from CC register.ebotcazou2012-02-142-5/+6
| | | | | | | * config/sparc/sjlj.S (GTM_longjmp): Restore %fp atomically. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184202 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/x86/target.h (GTM_longjmp): Jump indirect from memory address.uros2012-02-141-6/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184198 138bc75d-0d04-0410-961f-82ee72b054a4
* * configure.tgt (target_cpu): Handle sparc and sparc64 & sparcv9.ebotcazou2012-02-134-0/+245
| | | | | | | | | | * config/sparc/cacheline.h: New file. * config/sparc/target.h: Likewise. * config/sparc/sjlj.S: Likewise. * config/linux/sparc/futex_bits.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184177 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Fix wake-up of readers in futex-based serial lock.torvald2012-01-241-3/+6
| | | | | | | | libitm/ * config/linux/rwlock.cc (GTM::gtm_rwlock::write_unlock): Fix reader wake-up. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183488 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/x86/target.h (gtm_jmpbuf) [__x86_64__]: Move rip to theuros2012-01-242-19/+17
| | | | | | | | | | | | end of structure. * config/x86/sjlj.S (_ITM_beginTransaction) [__x86_64__]: Update offset values. Do not copy return address. Decrement stack by 56 bytes only. (GTM_longjump) [__x86_64__]: Update offset values. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183467 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libitm/51830uros2012-01-231-0/+1
| | | | | | | | | | | | | | | * builtin-types.def (BT_FN_UINT_UINT_VAR): New. * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR. libitm/ChangeLog: PR libitm/51830 * config/x86/sjlj.S (_ITM_beginTransaction) [!__x86_64__]: Load the first function argument to %eax. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183435 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Filter out undo writes that overlap with the libitm stack.torvald2012-01-132-0/+24
| | | | | | | | | | | | | | PR libitm/51855 * config/generic/tls.h (GTM::mask_stack_top): New. (GTM::mask_stack_bottom): Declare. * config/generic/tls.c (GTM::mask_stack_bottom): New. * local.cc (gtm_undolog::rollback): Filter out any updates that overlap the libitm stack. Add current transaction as parameter. * libitm_i.h (GTM::gtm_undolog::rollback): Adapt. * beginend.cc (GTM::gtm_thread::rollback): Adapt. * testsuite/libitm.c/stackundo.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183172 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: PowerPC support.rth2012-01-055-2/+572
| | | | | | | | | | | | * configure.tgt: Support powerpc-linux and powerpc-darwin. * config/linux/powerpc/futex_bits.h: New file. * config/powerpc/cacheline.h: New file. * config/powerpc/sjlj.S: New file. * config/powerpc/target.h: New file. * config/generic/asmcfi.h (cfi_offset): New. (cfi_restore, cfi_undefined): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182930 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Fix privatization safety during upgrades to serial mode.torvald2011-12-244-10/+30
| | | | | | | | | | | | | | | | | | libitm/ * beginend.cc (GTM::gtm_thread::restart): Add and handle finish_serial_upgrade parameter. * libitm.h (GTM::gtm_thread::restart): Adapt declaration. * config/linux/rwlock.cc (GTM::gtm_rwlock::write_lock_generic): Don't unset reader flag. (GTM::gtm_rwlock::write_upgrade_finish): New. * config/posix/rwlock.cc: Same. * config/linux/rwlock.h (GTM::gtm_rwlock::write_upgrade_finish): Declare. * config/posix/rwlock.h: Same. * method-serial.cc (GTM::gtm_thread::serialirr_mode): Unset reader flag after commit or after rollback when restarting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182675 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Fixed conversion to C++11 atomics.torvald2011-12-2410-71/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* * configure.tgt: Add sh* case.kkojima2011-12-173-0/+223
| | | | | | | | | | * config/sh/target.h: New file. * config/sh/sjlj.S: New file. * config/linux/sh/futex_bits.h: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182429 138bc75d-0d04-0410-961f-82ee72b054a4
* arm-linux: Add libitm support.rth2011-12-158-7/+374
| | | | | | | | | | | | | | | | * config/arm/hwcap.h, config/arm/hwcap.cc: New files. * config/arm/sjlj.S, config/arm/target.h: New files. * config/generic/asmcfi.h (cfi_adjust_cfa_offset): New. (cfi_rel_offset): New. * config/linux/futex_bits.h: New file. * config/linux/futex.cc: Include futex_bits.h here... * config/linux/futex.h: ... not here. * Makefile.am (libitm_la_SOURCES) <ARCH_ARM>: Add hwcap.cc. * configure.ac (ARCH_AM): New conditional. * Makefile.in, configure: Rebuild. * configure.tgt: Handle ARM. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182355 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/posix/rwlock.cc (gtm_rwlock::write_lock_generic): Fixrth2011-12-131-1/+1
| | | | | | | signed/unsigned comparison werror. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182302 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Conversion to c++11 atomics.rth2011-12-134-42/+12
| | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Swap the action and jmpbuf arguments to GTM_longjmprth2011-11-302-32/+31
| | | | | | | | | | | | | | On several ABIs, the first register parameter is the same as the return value register. Moving the action parameter first avoids the need for register shuffling on these targets. * libitm_i.h (GTM_longjmp): Swap first and second arguments. * beginend.c (_ITM_abortTransaction): Update to match. (GTM::gtm_thread::restart): Likewise. * config/alpha/sjlj.S (GTM_longjmp): Likewise. * config/x86/sjlj.S (GTM_longjmp): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181863 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm:iains2011-11-221-18/+39
| | | | | | | | | | | | | | | * config/x86/sjlj.S (CONCAT1, CONCAT2, SYM): Respond to __USER_LABEL_PREFIX__ for targets that use it. TYPE, SIZE, HIDDEN): New macros to assist on non-elf targets. (_ITM_beginTransaction): Use SYM, TYPE, SIZE macros to assist in portability to non-elf targets. (GTM_longjmp): LIkewise. * libitm_i.h (begin_transaction): Apply __USER_LABEL_PREFIX__ where required. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181612 138bc75d-0d04-0410-961f-82ee72b054a4
* Support libitm on Solaris 8 and 9/x86 with Sun asro2011-11-182-1/+13
| | | | | | | | | | * config/generic/asmcfi.h: Fix comment. * config/x86/sjlj.S (_ITM_beginTransaction): Provide ELF PIC code sequence without .hidden support, error for non-ELF targets. (GTM_longjmp) [__ELF__]: Only use .hidden if HAVE_ATTRIBUTE_VISIBILITY. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181481 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm port to Tru64 UNIXro2011-11-101-0/+4
| | | | | | | | | | | | | | * config/alpha/sjlj.S (_ITM_beginTransaction) [!__ELF__]: Don't use .hidden. (.note.GNU-stack): Only use if __linux__. * alloc_cpp.cc [!__osf__] (_ZnaXRKSt9nothrow_t): Dummy function. * testsuite/libitm.c/notx.c: Use dg-options "-pthread". * testsuite/libitm.c/reentrant.c: Likewise. * testsuite/libitm.c/simple-2.c: Likewise. * testsuite/libitm.c/txrelease.c: Likewise. * testsuite/libitm.c++/static_ctor.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181262 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Don't add -mavx if the assembler doesn't support avx.rth2011-11-101-12/+8
| | | | | | | | | * config/x86/x86_avx.cc: Remove #undef __AVX__ hack. Tidy comments. * Makefile.am (x86_avx.lo): Only add -mavx if ARCH_X86_AVX. * configure.ac (ARCH_X86_AVX): New conditional. * Makefile.in, configure: Rebuild. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181261 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Work around assembler missing AVX insns.rth2011-11-101-0/+59
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181246 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Remove unused code.rth2011-11-0913-1405/+3
| | | | | | In particular, unused code that's presenting portability problems. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181241 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Avoid non-portable x86 branch prediction mnemonic.rth2011-11-091-3/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181233 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: de-ELF-ize x86/sjlj.S.rth2011-11-091-5/+14
| | | | | | | * config/x86/sjlj.S: Protect elf directives with __ELF__. Protect .note.GNU-stack with __linux__. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181229 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Configure for gas cfi pseudo ops.rth2011-11-092-12/+59
| | | | | | | | | | | * asmcfi.m4: New file. * configure.ac (GCC_AS_CFI_PSEUDO_OP): Test it. * configure, aclocal.m4, config.h.in: Rebuild. * config/generic/asmcfi.h: New file. * config/x86/sjlj.S: Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181224 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix Solaris/x86 libitm buildro2011-11-082-1/+5
| | | | | | | | | | * configure.tgt: Handle i386 like i[456]86. * config/generic/tls.h [!HAVE_ARCH_GTM_THREAD] (gtm_thr): Don't take address. * config/generic/tls.cc [!HAVE_ARCH_GTM_THREAD || !HAVE_ARCH_GTM_THREAD_DISP] (_gtm_thr_tls): New variable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181163 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge from transactional-memory branch.aldyh2011-11-0827-0/+3199
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181154 138bc75d-0d04-0410-961f-82ee72b054a4