]> git.ipfire.org Git - thirdparty/gcc.git/blame - libitm/ChangeLog
re PR rtl-optimization/78669 (ICE: in combine_and_move_insns, at ira.c:3665 with...
[thirdparty/gcc.git] / libitm / ChangeLog
CommitLineData
84c1b9d3
MK
12016-11-15 Matthias Klose <doko@ubuntu.com>
2
3 * configure: Regenerate.
4
831698b8
L
52016-04-19 H.J. Lu <hongjiu.lu@intel.com>
6
7 PR libitm/70456
8 * util.cc (xmalloc): Use posix_memalign to allocate memory on
9 on cache line if requested.
10
edcbda7e
DV
112016-03-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
12
13 * config/s390/target.h (TARGET_BEGIN_TRANSACTION_ATTRIBUTE): Define
14 function attribute to disable floating point in begin_transaction() on
15 S/390.
16 * beginend.cc (begin_transaction): Use
17 TARGET_BEGIN_TRANSACTION_ATTRIBUTE.
18
6041f70a
TR
192016-01-22 Torvald Riegel <triegel@redhat.com>
20
21 * beginend.cc (GTM::gtm_thread::serial_lock): Put on cacheline
22 boundary.
23 (htm_fastpath): Remove.
24 (gtm_thread::begin_transaction): Fix HTM fastpath.
25 (_ITM_commitTransaction): Adapt.
26 (_ITM_commitTransactionEH): Adapt.
27 * libitm/config/linux/rwlock.h (gtm_rwlock): Add htm_fastpath member
28 and accessors.
29 * libitm/config/posix/rwlock.h (gtm_rwlock): Likewise.
30 * libitm/config/posix/rwlock.cc (gtm_rwlock::gtm_rwlock): Adapt.
31 * libitm/config/x86/sjlj.S (_ITM_beginTransaction): Fix HTM fastpath.
32 * libitm/libitm_i.h (htm_fastpath): Remove declaration.
33 * libitm/method-serial.cc (htm_mg): Adapt.
34 (gtm_thread::serialirr_mode): Adapt.
35 * libitm/query.cc (_ITM_inTransaction, _ITM_getTransactionId): Adapt.
36
0b96ffdb
TR
372016-01-21 Torvald Riegel <triegel@redhat.com>
38
39 * testsuite/libitm.c++/libstdc++-safeexc.C: Not supported on darwin
40 or AIX.
41
b1de98e3
RH
422016-01-19 Richard Henderson <rth@redhat.com>
43
44 PR bootstrap/69343
45 PR bootstrap/69339
46 Revert:
47 2016-01-13 Richard Henderson <rth@redhat.com>
48
49 * Makefile.am (libitm_la_SOURCES) [ARCH_AARCH64]: Add vect128.cc
50 (libitm_la_SOURCES) [ARCH_ARM]: Add neon.cc
51 (libitm_la_SOURCES) [ARCH_PPC]: Add vect128.cc
52 (libitm_la_SOURCES) [ARCH_S390]: Add vect128.cc
53 * configure.ac (ARCH_AARCH64): New conditional.
54 (ARCH_PPC, ARCH_S390): Likewise.
55 * Makefile.in, configure: Rebuild.
56
57 * libitm.h (_ITM_TYPE_M128): Always define.
58 * vect64.cc: Split ...
59 * vect128.cc: ... out of...
60 * config/x86/x86_sse.cc: ... here.
61 * config/arm/neon.cc: New file.
62
f57fc960
TR
632016-01-19 Torvald Riegel <triegel@redhat.com>
64
65 * local_type_traits: Remove file.
66 * libitm_i.h: Don't include it anymore.
67 (sized_integral): Remove.
68
d2653984
TR
692016-01-16 Torvald Riegel <triegel@redhat.com>
70
71 * method-gl.cc (gl_wt_dispatch::trycommit): Ensure proxy privatization
72 safety.
73 * method-ml.cc (ml_wt_dispatch::trycommit): Likewise.
74 * libitm/testsuite/libitm.c/priv-1.c: New.
75
a04d5fc9
TR
762015-01-15 Torvald Riegel <triegel@redhat.com>
77
78 testsuite/libitm.c++/libstdc++-safeexc.C: New.
79
e89137ce
TR
802016-01-13 Torvald Riegel <triegel@redhat.com>
81
82 * beginend.cc (gtm_thread::trycommit): Fix seq_cst fences.
83 * config/linux/rwlock.cc (gtm_rwlock::write_lock_generic): Likewise.
84 (gtm_rwlock::write_unlock): Likewise.
85
4c868789
RH
862016-01-13 Richard Henderson <rth@redhat.com>
87
88 * Makefile.am (libitm_la_SOURCES) [ARCH_AARCH64]: Add vect128.cc
89 (libitm_la_SOURCES) [ARCH_ARM]: Add neon.cc
90 (libitm_la_SOURCES) [ARCH_PPC]: Add vect128.cc
91 (libitm_la_SOURCES) [ARCH_S390]: Add vect128.cc
92 * configure.ac (ARCH_AARCH64): New conditional.
93 (ARCH_PPC, ARCH_S390): Likewise.
94 * Makefile.in, configure: Rebuild.
95
96 * libitm.h (_ITM_TYPE_M128): Always define.
97 * vect64.cc: Split ...
98 * vect128.cc: ... out of...
99 * config/x86/x86_sse.cc: ... here.
100 * config/arm/neon.cc: New file.
101
629e4729
TR
1022016-01-13 Torvald Riegel <triegel@redhat.com>
103
104 * beginend.cc (gtm_thread::trycommit): Fix privatization safety.
105 * config/linux/rwlock.cc (gtm_rwlock::write_lock_generic): Likewise.
106 * config/posix/rwlock.cc (gtm_rwlock::write_lock_generic): Likewise.
107 * dispatch.h (abi_dispatch::snapshot_most_recent): New.
108 * method-gl.cc (gl_wt_dispatch::snapshot_most_recent): New.
109 * method-ml.cc (ml_wt_dispatch::snapshot_most_recent): New.
110 * method-serial.cc (serial_dispatch::snapshot_most_recent): New.
111 (serialirr_dispatch::snapshot_most_recent): New.
112 (serialirr_onwrite_dispatch::snapshot_most_recent): New.
113
0d1ed412
TR
1142016-01-12 Torvald Riegel <triegel@redhat.com>
115
116 * libitm_i.h (gtm_mask_stack): Remove.
117 * beginend.cc (gtm_stmlock_array, gtm_clock): Likewise.
118 * stmlock.h: Remove file.
119 * config/alpha/cacheline.h: Likewise.
120 * config/generic/cacheline.h: Likewise.
121 * config/powerpc/cacheline.h: Likewise.
122 * config/sparc/cacheline.h: Likewise.
123 * config/x86/cacheline.h: Likewise.
124
21fa2a29
JJ
1252016-01-04 Jakub Jelinek <jakub@redhat.com>
126
818ab71a
JJ
127 Update copyright years.
128
21fa2a29
JJ
129 * libitm.texi: Bump @copying's copyright year.
130
e7f7330f
TR
1312015-11-26 Torvald Riegel <triegel@redhat.com>
132
133 * method-ml.cc (ml_mg): Use multiplicative instead of simple hashing.
134 (ml_wt_dispatch::pre_write): Adapt.
135 (ml_wt_dispatch::pre_load): Likewise.
136
4f8a3b87
TR
1372015-11-22 Torvald Riegel <triegel@redhat.com>
138
139 * libitm_i.h (gtm_alloc_action): Remove union.
140 * testsuite/libitm.c/alloc-1.c: New.
141
258c1d07
TR
1422015-11-19 Torvald Riegel <triegel@redhat.com>
143
144 * testsuite/libitm.c++/eh-5.C: New.
145 * libitm.h (_ITM_cxa_free_exception): New.
146 * libitm.map (_ITM_cxa_free_exception): Add it.
147 * libitm.texi: Update ABI docs.
148 * libitm_i.h (gtm_transaction_cp::cxa_unthrown): Remove.
149 (gtm_transaction_cp::cxa_uncaught_count): Add.
150 (gtm_thread::cxa_unthrown): Remove.
151 (gtm_thread::cxa_uncaught_count_ptr): Add.
152 (gtm_thread::cxa_uncaught_count): Add.
153 (gtm_thread::drop_references_allocations): Rename to...
154 (gtm_thread::discard_allocation): ... this and adapt.
155 (gtm_thread::init_cpp_exceptions): New.
156 * beginend.cc (gtm_thread::gtm_thread): Adapt EH handling.
157 (gtm_thread::begin_transaction): Likewise.
158 (gtm_transaction_cp::save): Likewise.
159 (gtm_thread::trycommit): Likewise.
160 * eh_cpp.cc: Add overview comments.
161 (__cxa_eh_globals, __cxa_get_globals, __cxa_free_exception): Declare.
162 (free_any_exception, _ITM_cxa_free_exception): New.
163 (gtm_thread::init_cpp_exceptions): Define.
164 (_ITM_cxa_allocate_exception, _ITM_cxa_throw): Adapt.
165 (_ITM_cxa_begin_catch, _ITM_cxa_end_catch): Likewise.
166 (gtm_thread::revert_cpp_exceptions): Likewise.
167
c518678b
TR
1682015-11-09 Torvald Riegel <triegel@redhat.com>
169
170 * alloc_cpp.cc (_ZdlPvX, _ZdlPvXRKSt9nothrow_t, _ZGTtdlPvX,
171 _ZGTtdlPvXRKSt9nothrow_t, delsz_opnt): New.
172 * libitm.map: Add _ZGTtdlPvX and _ZGTtdlPvXRKSt9nothrow_t.
173 * libitm_i.h (gtm_alloc_action): Add free_fn_sz and sz. Add comments.
174 (gtm_thread::forget_allocations): New overload with size_t argument.
175 * alloc.c (gtm_thread::forget_allocation): Define new overload and
176 adapt existing one.
177 (gtm_thread::record_allocation): Adapt.
178 (gtm_thread::commit_allocations_1): Adapt.
179 (gtm_thread::commit_allocations_2): Adapt.
180 * testsuite/libitm.c++/newdelete.C: New.
181
1e44e857
DJ
1822015-10-27 Daniel Jacobowitz <dan@codesourcery.com>
183 Joseph Myers <joseph@codesourcery.com>
184 Mark Shinwell <shinwell@codesourcery.com>
185 Andrew Stubbs <ams@codesourcery.com>
186 Rich Felker <dalias@libc.org>
187
188 * config/sh/sjlj.S (_ITM_beginTransaction): Bypass PLT calling
189 GTM_begin_transaction for compatibility with FDPIC.
190
9e531d37
DM
1912015-10-09 David Malcolm <dmalcolm@redhat.com>
192
193 * testsuite/lib/libitm.exp: Load multiline.exp before prune.exp,
194 using load_gcc_lib.
195
c629c246
GFM
1962015-08-20 Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org> (tiny change)
197
198 PR libitm/61164
199 * local_atomic (__always_inline): Rename to...
200 (__libitm_always_inline): ... this.
201
cd5a9a74
CSLL
2022015-07-03 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
203
204 PR target/52482
205 * config/powerpc/sjlj.S: Port to Xcode 2.5.
206
ea023bcf
UB
2072015-05-27 Uros Bizjak <ubizjak@gmail.com>
208
d778b5a0
UB
209 * config/linux/x86/futex_bits.h (sys_futex0) [__x86_64__]: Change
210 operands "op" and "val" to int.
211
2122015-05-27 Uros Bizjak <ubizjak@gmail.com>
213
214 * config/linux/sh/futex_bits.h (sys_futex0) Change operands
215 "op" and "val" to int.
216
2172015-05-27 Uros Bizjak <ubizjak@gmail.com>
218
219 * config/linux/alpha/futex_bits.h (sys_futex0) Change operands
220 "op" and "val" to int.
221
2222015-05-27 Uros Bizjak <ubizjak@gmail.com>
223
224 * config/linux/futex.cc (gtm_futex_wait, gtm_futex_wake):
225 Declare as static int.
226 (FUTEX_PRIVATE_FLAG): Remove L suffix.
227 * config/linux/futex_bits.h (sys_futex0) Change operand "op" to int.
228
2292015-05-27 Uros Bizjak <ubizjak@gmail.com>
230
231 * config/linux/x86/futex_bits.h (sys_futex0) [__PIC__]: Remove
232 sys_futex0 function.
ea023bcf 233
503902f9
MH
2342015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
235
236 * Makefile.in: Regenerated with automake-1.11.6.
237 * aclocal.m4: Likewise.
238 * configure: Likewise.
239 * testsuite/Makefile.in: Likewise.
240
96ce40cb
GR
2412015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
242
243 * config/arm/hwcap.cc: Use fcntl.h instead of sys/fcntl.h.
244 * config/linux/x86/tls.h: Only use __GLIBC_PREREQ if defined.
245
3a07b160
L
2462015-01-15 H.J. Lu <hongjiu.lu@intel.com>
247
248 PR libitm/64360
249 * libitm.c/stackundo.c (test2): Make it static.
250 (test1): Likewise.
251
5624e564
JJ
2522015-01-05 Jakub Jelinek <jakub@redhat.com>
253
254 Update copyright years.
255
b67cd4e3
JJ
2562015-01-05 Jakub Jelinek <jakub@redhat.com>
257
258 * libitm.texi: Bump @copying's copyright year.
259
69aef6dc
KT
2602014-12-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
261
262 * testsuite/lib/libitm.exp: Load target-utils.exp.
263 Move load of target-supports.exp earlier.
264
68bc9270
UB
2652014-12-03 Uros Bizjak <ubizjak@gmail.com>
266
267 * configure.tgt (x86_64): Tune -m32 multilib to generic.
268
a699d672
L
2692014-11-21 H.J. Lu <hongjiu.lu@intel.com>
270
271 PR bootstrap/63784
272 * configure: Regenerated.
273
ebf6d33b
FXC
2742014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
275
276 PR target/63610
277 * configure: Regenerate.
278
99183741
MP
2792014-10-06 Marek Polacek <polacek@redhat.com>
280
281 * testsuite/libitm.c/memcpy-1.c: Declare getpagesize.
282 * testsuite/libitm.c/memset-1.c: Likewise.
283
b6334cf4
RH
2842014-07-24 Richard Henderson <rth@redhat.com>
285
286 * config/aarch64/sjlj.S (_ITM_beginTransaction): Use post-inc
287 addressing mode in epilogue.
288
3c698bf0
RO
2892014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
290
291 * acinclude.m4 (LIBITM_CHECK_LINKER_HWCAP): Check for
292 -mclear-hwcap instead.
293 * configure: Regenerate.
294 * clearcap.map: Remove.
295
dbed5a9b
JM
2962014-05-21 John Marino <gnugcc@marino.st>
297
298 * configure.tgt (*-*-dragonfly*): New target.
299
b17f08dd
RH
3002014-05-19 Richard Henderson <rth@redhat.com>
301
302 * config/aarch64/sjlj.S: New file.
303 * config/aarch64/target.h: New file.
304 * configure.tgt: Enable aarch64.
305
5e1f630a
RO
3062014-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
307
308 * config/generic/asmcfi.h: Also check for
309 __GCC_HAVE_DWARF2_CFI_ASM.
310
84c2f4b0
RH
3112013-04-02 Richard Henderson <rth@redhat.com>
312
313 * config/alpha/target.h (PAGE_SIZE, FIXED_PAGE_SIZE): Remove.
314 * config/arm/target.h, config/sh/target.h: Likewise.
315 * config/sparc/target.h, config/x86/target.h: Likewise.
316
7cc51d64
JJ
3172014-03-26 Jakub Jelinek <jakub@redhat.com>
318
319 * config/linux/futex_bits.h: Include errno.h.
320 (sys_futex0): If syscall returns -1, return -errno rather than
321 -1.
322
c288ec8f
JM
3232014-03-26 Joseph Myers <joseph@codesourcery.com>
324
325 * libitm.texi (Index): Rename to Library Index.
326
ed100f5d
L
3272014-01-13 H.J. Lu <hongjiu.lu@intel.com>
328
329 PR libitm/53113
330 * Makefile.am (x86_sse.lo): Append -msse to CXXFLAGS.
331 (x86_avx.lo): Append -mavx to CXXFLAGS.
332 * Makefile.in: Regenerate.
333
f93608e6
RS
3342014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
335
336 Update copyright years
337
98db73df
TB
3382014-01-02 Tobias Burnus <burnus@net-b.de>
339
340 * libitm.texi: Bump @copying's copyright year.
341
b54214fe
UW
3422013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
343
344 * config/powerpc/sjlj.S [__powerpc64__ && _CALL_ELF == 2]:
345 (FUNC): Define ELFv2 variant.
346 (END): Likewise.
347 (HIDDEN): Likewise.
348 (CALL): Likewise.
349 (BASE): Likewise.
350 (LR_SAVE): Likewise.
351
3cbe17f7
AM
3522013-09-20 Alan Modra <amodra@gmail.com>
353
354 * configure: Regenerate.
355
6fb471d8
TR
3562013-08-30 Torvald Riegel <triegel@redhat.com>
357
358 * config/posix/rwlock.cc: Fix initialization order.
359
bec9ec3f
TR
3602013-08-30 Torvald Riegel <triegel@redhat.com>
361
362 * libitm_i.h (gtm_thread): Assign an asm name to serial_lock.
363 (htm_fastpath): Assign an asm name.
364 * libitm.h (_ITM_codeProperties): Add non-ABI flags used by custom
365 HTM fast paths.
366 (_ITM_actions): Likewise.
367 * config/x86/target.h (HTM_CUSTOM_FASTPATH): Enable custom fastpath on
368 x86_64.
369 * config/x86/sjlj.S (_ITM_beginTransaction): Add custom HTM fast path.
370 * config/posix/rwlock.h (gtm_rwlock): Update comments. Move summary
371 field to the start of the structure.
372 * config/linux/rwlock.h (gtm_rwlock): Update comments.
373 * beginend.cc (gtm_thread::begin_transaction): Add retry policy
374 handling for custom HTM fast paths.
375
1869217f
AK
3762013-08-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
377 Revert:
378 2013-08-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
379
380 * configure.tgt: Add -msoft-float to XCFLAGS.
381
d62d5152
AK
3822013-08-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
383
384 * configure.tgt: Add -msoft-float to XCFLAGS.
385
aaaffb2a
AK
3862013-07-29 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
387
388 * config/s390/target.h (htm_begin, htm_commit, htm_abort)
389 (htm_transaction_active): Enable zEC12 instructions in the
390 assembler.
391 * configure.tgt: Remove -Wa,-march=zEC12 from XCFLAGS.
392
167f68ed
AK
3932013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
394
395 * acinclude.m4: Add htm asm check for s390.
396 * configure.tgt: Add -mhtm and -Wa,-march=zEC12 to the options.
397 * configure: Regenerate.
398 * config/s390/target.h: Remove __HTM__ check.
399 (htm_available): Call getauxval to get hwcaps and check whether
400 HTM is available or not.
401
0258b6e4
PB
4022013-07-15 Peter Bergner <bergner@vnet.ibm.com>
403
404 * acinclude.m4 (LIBITM_CHECK_AS_HTM): New.
405 * configure.ac: Use it.
406 (AC_CHECK_HEADERS): Check for sys/auxv.h.
407 (AC_CHECK_FUNCS): Check for getauxval.
408 * config.h.in, configure: Rebuild.
409 * configure.tgt (target_cpu): Add -mhtm to XCFLAGS.
410 * config/powerpc/target.h: Include sys/auxv.h and htmintrin.h.
411 (USE_HTM_FASTPATH): Define.
412 (_TBEGIN_STARTED, _TBEGIN_INDETERMINATE, _TBEGIN_PERSISTENT,
413 _HTM_RETRIES) New macros.
414 (htm_abort, htm_abort_should_retry, htm_available, htm_begin, htm_init,
415 htm_begin_success, htm_commit, htm_transaction_active): New functions.
416
5a3fe9b6
AK
4172013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
418
419 * config/s390/target.h: Include htmintrin.h.
420 (_HTM_ITM_RETRIES): New macro definition.
421 (htm_available, htm_init, htm_begin, htm_begin_success)
422 (htm_commit, htm_abort, htm_abort_should_retry): New functions.
423
6c84d576
IS
4242013-06-20 Iain Sandoe <iain@codesourcery.com>
425 Cesar Philippidis <cesar@codesourcery.com>
426
427 * testsuite/lib/libitm.exp: Reorder lib loads into dependency order.
428 Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
429 * testsuite/libitm.c/c.exp: load_gcc_lib gcc-dg.exp.
430 * testsuite/libitm.c++/c++.exp: load_gcc_lib gcc-dg.exp.
431
480c696b
TR
4322013-06-20 Torvald Riegel <triegel@redhat.com>
433
434 * query.cc (_ITM_inTransaction): Abort when using the HTM fastpath.
435 (_ITM_getTransactionId): Same.
436 * config/x86/target.h (htm_transaction_active): New.
437
b1db457b
TR
4382013-06-20 Torvald Riegel <triegel@redhat.com>
439
440 PR libitm/57643
441 * beginend.cc (gtm_thread::begin_transaction): Handle reentrancy in
442 the HTM fastpath.
443
51249377
GP
4442013-03-31 Gerald Pfeifer <gerald@pfeifer.com>
445
446 PR bootstrap/56714
447 * local_atomic (__always_inline): Always define our version.
448 (__calculate_memory_order): Mark inline.
449 (atomic_thread_fence): Ditto.
450 (atomic_signal_fence): Ditto.
451 (atomic_bool::atomic_flag_test_and_set_explicit): Ditto.
452 (atomic_bool::atomic_flag_clear_explicit): Ditto.
453 (atomic_bool::atomic_flag_test_and_set): Ditto.
454 (atomic_bool::atomic_flag_clear): Ditto.
455
f818478b
JJ
4562013-04-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
457
458 * config/s390/sjlj.S: New file.
459 * config/s390/target.h: New file.
460 * configure.tgt: Set options for S/390.
461
ab4425be
AK
4622013-03-23 Andi Kleen <ak@linux.intel.com>
463
464 * local_atomic (__always_inline): Add.
465 (__calculate_memory_order, atomic_thread_fence,
466 atomic_signal_fence, test_and_set, clear, store, load,
467 exchange, compare_exchange_weak, compare_exchange_strong,
468 fetch_add, fetch_sub, fetch_and, fetch_or, fetch_xor):
469 Add __always_inline to force inlining.
470
6c59ffd1
IS
4712013-02-11 Iain Sandoe <iain@codesourcery.com>
472 Jack Howarth <howarth@bromo.med.uc.edu>
473 Patrick Marlier <patrick.marlier@gmail.com>
474
475 PR libitm/55693
476 * alloc_cpp.cc: Enable function declarations on darwin.
477 * eh_cpp.cc: Likewise.
478
75f9527c
RS
4792013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
480
481 Update copyright years.
482
64fbcc74
TR
4832012-11-09 Torvald Riegel <triegel@redhat.com>
484
485 * beginend.cc (htm_fastpath): New.
486 (gtm_thread::begin_transaction, _ITM_commitTransaction,
487 _ITM_commitTransactionEH): Add HTM fastpath handling.
488 * config/linux/rwlock.h (gtm_rwlock.is_write_locked): New.
489 * config/posix/rwlock.h (gtm_rwlock.is_write_locked): New.
490 * config/x86/target.h (htm_available, htm_init, htm_begin_success,
491 htm_begin, htm_commit, htm_abort, htm_abort_should_retry): New.
492 * configure.tgt: Add -mrtm to XCFLAGS.
493 * method-serial.cc (htm_mg, o_htm_mg, htm_dispatch, dispatch_htm): New.
494 (gtm_thread::serialirr_mode): Add HTM fastpath handling.
495 * libitm_i.h (htm_fastpath, dispatch_htm): Declare.
496 * retry.cc (parse_default_method): Add HTM method parsing.
497 (gtm_thread::number_of_threads_changed): Use HTM by default if
498 available.
499
b9efc877
TS
5002012-11-04 Thomas Schwinge <thomas@codesourcery.com>
501
502 * configure: Regenerate.
503
07d3b5c8
RH
5042012-10-31 Richard Henderson <rth@redhat.com>
505
506 * acinclude.m4 (LIBITM_CHECK_AS_RTM): New.
507 * configure.ac: Use it.
508 * config.h.in, configure: Rebuild.
509 * testsuite/Makefile.in: Rebuild.
510
eb00e959
TR
5112012-10-24 Torvald Riegel <triegel@redhat.com>
512
513 * libitm.texi: Clarify ABI requirements for data-logging functions.
514
b679c813
TR
5152012-10-24 Torvald Riegel <triegel@redhat.com>
516
517 * retry.cc (gtm_thread::decide_begin_dispatch): Ask dispatch whether
518 it requires serial mode instead of assuming that for certain
519 dispatchs.
520 * dispatch.h (abi_dispatch::requires_serial): New.
521 (abi_dispatch::abi_dispatch): Adapt.
522 * method-gl.cc (gl_wt_dispatch::gl_wt_dispatch): Adapt.
523 * method-ml.cc (ml_wt_dispatch::ml_wt_dispatch): Same.
524 * method-serial.cc (serialirr_dispatch::serialirr_dispatch,
525 serial_dispatch::serial_dispatch,
526 serialirr_onwrite_dispatch::serialirr_onwrite_dispatch): Same.
527
0c609a21
UB
5282012-10-02 Uros Bizjak <ubizjak@gmail.com>
529
530 * config/x86/target.h (struct gtm_jmpbuf): Merge x86_64
531 and ia32 declarations some more.
532 * config/x86/sjlj.S (_ITM_beginTransaction): Move ret to common code.
533
c0758df9
JJ
5342012-09-20 Jakub Jelinek <jakub@redhat.com>
535
536 PR other/43620
537 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
538 * configure: Regenerate.
539 * Makefile.in: Regenerate.
540
690c45b8
DE
5412012-09-14 David Edelsohn <dje.gcc@gmail.com>
542
543 * configure: Regenerated.
544
68a12ef3
UB
5452012-07-31 Uros Bizjak <ubizjak@gmail.com>
546
547 * config/x86/target.h (cpu_relax): Use __builtin_ia32_pause.
548
f2f9a097
PM
5492012-05-21 Patrick Marlier <patrick.marlier@gmail.com>
550
551 * eh_cpp.cc: Fix __cxa_end_catch declaration.
552
e6d5f8c9
L
5532012-05-16 H.J. Lu <hongjiu.lu@intel.com>
554
555 * configure: Regenerated.
556
0100e3b3
L
5572012-04-04 H.J. Lu <hongjiu.lu@intel.com>
558
559 PR libitm/52854
560 * config/x86/target.h (gtm_jmpbuf): Replace long with long long
561 for x86-64.
562
2f6935f4
TG
5632012-04-03 Tristan Gingold <gingold@adacore.com>
564
565 * configure: Regenerate.
566
b9c23a61
L
5672012-03-31 H.J. Lu <hongjiu.lu@intel.com>
568
569 PR bootstrap/52812
570 * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
571
6a26a74d
BRF
5722012-03-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
573
574 * testsuite/lib/libitm.exp: load fortran-modules.exp
575
b24513a1
RO
5762012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
577
578 * configure.tgt (*-*-irix6*): Remove.
579
0d23faac
TR
5802012-03-13 Torvald Riegel <triegel@redhat.com>
581
582 PR libitm/52526
583 * config/linux/rwlock.cc (GTM::gtm_rwlock::read_lock): Fix lost
584 wake-up.
585
5c30094f
RO
5862012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
587
588 * configure.tgt (*-*-osf*): Remove.
589 * configure: Regenerate.
590
d28b0b08
TR
5912012-03-05 Torvald Riegel <triegel@redhat.com>
592
593 * dispatch.h (CREATE_DISPATCH_METHODS_MEM): Don't execute
594 memtransfer/memset if size isn't larger than zero.
595
034209bc
TR
5962012-03-02 Torvald Riegel <triegel@redhat.com>
597
598 * libitm.texi: Link to specification and add a usage example.
599
bc8da6ba
TR
6002012-02-24 Torvald Riegel <triegel@redhat.com>
601
602 * retry.cc (GTM::gtm_thread::number_of_threads_changed): Change
603 default dispatch for more than 1 thread to ml_wt.
604
63b08143
TR
6052012-02-20 Torvald Riegel <triegel@redhat.com>
606
607 * method-gl.cc (gl_wt_dispatch::orec): Put on separate cacheline.
608
4c9bd6ac
TR
6092012-02-20 Torvald Riegel <triegel@redhat.com>
610
611 * method-gl.cc (gl_wt_dispatch::rollback): Optimize memory orders.
612
651ff415
TR
6132012-02-20 Torvald Riegel <triegel@redhat.com>
614
615 * method-gl.cc (gl_wt_dispatch::trycommit): Remove handling of
616 serial mode corner cases made obsolete by prior gtm_rwlock changes.
617 (gl_wt_dispatch.rollback): Same.
618
efee0113
TR
6192012-02-20 Torvald Riegel <triegel@redhat.com>
620
621 * method-gl.cc (gl_wt_dispatch::pre_write): Optimize memory orders.
622
33a03827
TR
6232012-02-20 Torvald Riegel <triegel@redhat.com>
624
625 * method-gl.cc (gl_wt_dispatch::memtransfer_static): Add missing undo
626 for RfW src. Optimize number of calls to gtm_thr.
627
a19db3f2
TR
6282012-02-20 Torvald Riegel <triegel@redhat.com>
629
630 * beginend.cc (GTM::gtm_thread::begin_transaction): Move serial lock
631 acquisition to ...
632 * retry.cc (GTM::gtm_thread::decide_begin_dispatch): ... here.
633 (default_dispatch): Make atomic.
634 (GTM::gtm_thread::set_default_dispatch): Access atomically.
635 (GTM::gtm_thread::decide_retry_strategy): Access atomically and
636 use decide_begin_dispatch() if default_dispatch might have changed.
637 (GTM::gtm_thread::number_of_threads_changed): Initialize
638 default_dispatch here.
639
e948a1fb
IS
6402012-02-15 Iain Sandoe <iains@gcc.gnu.org>
641 Patrick Marlier <patrick.marlier@gmail.com>
642
643 PR libitm/52220
644 * alloc_cpp.cc: No dummy definitions for darwin.
645 * eh_cpp.cc: Likewise.
646
72824d5e
RH
6472012-02-14 Richard Henderson <rth@redhat.com>
648
649 * config/x86/target.h (GTM_longjmp): Correct the .cfi corrections.
650
1f319dba
UB
6512012-02-14 Uros Bizjak <ubizjak@gmail.com>
652
653 * config/x86/target.h (GTM_longjmp): Correct .cfi directives.
654
31772c95
TR
6552012-02-14 Torvald Riegel <triegel@redhat.com>
656
657 * libitm_i.h (GTM::gtm_rwlog_entry): New.
658 (GTM::gtm_thread): Add read and write logs.
659 (GTM::dispatch_ml_wt): Declare.
660 * retry.cc (parse_default_method): Support ml_wt.
661 * method-ml.cc: New file.
662 * Makefile.am: Add method-ml.cc.
663 * Makefile.in: Regenerate.
664
5b9cf5d2
TR
6652012-02-14 Torvald Riegel <triegel@redhat.com>
666
667 * dispatch.h (GTM::abi_dispatch::supports): New.
668 (GTM::method_group::reinit): New.
669 * retry.cc (GTM::gtm_thread::decide_retry_strategy): Use reinit().
670 (GTM::gtm_thread::number_of_threads_changed): Check that the method
671 supports the current situation.
672
7d33bcb7
TR
6732012-02-14 Torvald Riegel <triegel@redhat.com>
674
675 * util.cc (GTM::xcalloc): New.
676 * common.h (GTM::xcalloc): Declare.
677
62513f7b
EB
6782012-02-14 Eric Botcazou <ebotcazou@adacore.com>
679
680 * config/sparc/target.h (cpu_relax): Read from CC register.
681 * config/sparc/sjlj.S (GTM_longjmp): Restore %fp atomically.
682
6832012-02-14 Uros Bizjak <ubizjak@gmail.com>
d4a698d4
UB
684
685 * config/x86/target.h (GTM_longjmp): Jump indirect from memory address.
686
f3f5e3c3
EB
6872012-02-13 Eric Botcazou <ebotcazou@adacore.com>
688
62513f7b 689 * configure.tgt (target_cpu): Handle sparc and sparc64/sparcv9.
f3f5e3c3
EB
690 * config/sparc/cacheline.h: New file.
691 * config/sparc/target.h: Likewise.
692 * config/sparc/sjlj.S: Likewise.
693 * config/linux/sparc/futex_bits.h: Likewise.
694
6952012-02-13 Eric Botcazou <ebotcazou@adacore.com>
255a9a1b
EB
696
697 * configure.ac (link_itm): Fix comment.
698 * configure: Regenerate.
699 * testsuite/lib/libitm.exp: Do not pass -litm for the link.
700
681355e3
RO
7012012-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
702
fc985d2f 703 PR libitm/51822
62513f7b 704 * testsuite/libitm.c++/c++.exp (lang_link_flags): Add -shared-libgcc.
681355e3
RO
705 Correct libgomp references.
706
999bcff5
TR
7072012-01-24 Torvald Riegel <triegel@redhat.com>
708
709 * config/linux/rwlock.cc (GTM::gtm_rwlock::write_unlock): Fix reader
710 wake-up.
711
9848887a
UB
7122012-01-24 Uros Bizjak <ubizjak@gmail.com>
713
714 * config/x86/target.h (gtm_jmpbuf) [__x86_64__]: Move rip to the
715 end of structure.
716 * config/x86/sjlj.S (_ITM_beginTransaction) [__x86_64__]: Update
717 offset values. Do not copy return address. Decrement stack
718 by 56 bytes only.
719 (GTM_longjump) [__x86_64__]: Update offset values.
720
5752c591
UB
7212012-01-23 Uros Bizjak <ubizjak@gmail.com>
722
723 PR libitm/51830
724 * config/x86/sjlj.S (_ITM_beginTransaction) [!__x86_64__]: Load
725 the first function argument to %eax.
726
61e72ca4
RO
7272012-01-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
728
729 * libitm.h (_ITM_getThreadnum): Remove.
730 * libitm.map (_ITM_getThreadnum): Remove from LIBITM_1.0.
731
9ce91011
RO
7322012-01-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
733
734 * clearcap.map: New file.
735 * acinclude.m4 (LIBITM_CHECK_LINKER_HWCAP): New test.
736 * configure.ac: Call it.
737 Clear HWCAP_LDFLAGS if defaulting to -mavx.
738 * Makefile.am (AM_LDFLAGS): Add $(HWCAP_LDFLAGS)
739 * configure: Regenerate.
740 * Makefile.in: Regenerate.
741 * testsuite/Makefile.in: Regenerate.
742
3b4f05ec
RO
7432012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
744
745 PR libitm/51173
746 * testsuite/libitm.c++/static_ctor.C: Skip test, note PR, remove
747 include, exclude options.
748
aab74ee9
TR
7492012-01-14 Torvald Riegel <triegel@redhat.com>
750
751 * local.cc (GTM::gtm_undolog::rollback): Truncate undo log after
752 rolling back.
753 * containers.h (GTM::vector::set_size): New.
754
07b6642b
TR
7552012-01-14 Torvald Riegel <triegel@redhat.com>
756
757 PR libitm/51855
758 * config/generic/tls.h (GTM::mask_stack_top): New.
759 (GTM::mask_stack_bottom): Declare.
760 * config/generic/tls.c (GTM::mask_stack_bottom): New.
761 * local.cc (gtm_undolog::rollback): Filter out any updates that
762 overlap the libitm stack. Add current transaction as parameter.
763 * libitm_i.h (GTM::gtm_undolog::rollback): Adapt.
764 * beginend.cc (GTM::gtm_thread::rollback): Adapt.
765 * testsuite/libitm.c/stackundo.c: New test.
766
8377e5e5
RH
7672012-01-10 Richard Henderson <rth@redhat.com>
768
769 * libitm_i.h (_Unwind_DeleteException): Declare weak.
770 * eh_cpp.cc (_Unwind_DeleteException): Define for
771 !HAVE_ELF_STYLE_WEAKREF.
772
11f30bb0
TR
7732012-01-08 Torvald Riegel <triegel@redhat.com>
774
775 * local.cc (GTM_LB): Use GTM::gtm_undolog.
776 (GTM::gtm_thread::drop_references_undolog): Remove.
777 (GTM::gtm_thread::commit_undolog,
778 GTM::gtm_thread::rollback_undolog): Move to ...
779 * libitm_i.h (GTM::gtm_undolog): ...here. New.
780 (GTM::gtm_undolog_entry): Remove.
781 (GTM::gtm_thread): Adapt.
782 * beginend.cc (GTM::gtm_thread::rollback): Adapt.
783 (GTM::gtm_thread::trycommit): Adapt.
784 * method-serial.cc (serial_dispatch::log): Adapt.
785 * method-gl.cc (gl_wt_dispatch::pre_write): Adapt.
786 (gl_wt_dispatch::store): Fix likely/unlikely.
787 * containers.h (GTM::vector::resize): Add additional_capacity
788 parameter and handle it.
789 (GTM::vector::resize_noinline): New/adapt.
790 (GTM::vector::push): New.
791
a32e5e93
RH
7922012-01-06 Richard Henderson <rth@redhat.com>
793
794 * configure.tgt: Support powerpc-linux and powerpc-darwin.
795 * config/linux/powerpc/futex_bits.h: New file.
796 * config/powerpc/cacheline.h: New file.
797 * config/powerpc/sjlj.S: New file.
798 * config/powerpc/target.h: New file.
799 * config/generic/asmcfi.h (cfi_offset): New.
800 (cfi_restore, cfi_undefined): New.
801
1f53a8e6
AH
8022012-01-05 Aldy Hernandez <aldyh@redhat.com>
803
804 PR other/51171
805 * testsuite/libitm.c/reentrant.c: Remove xfail.
806 (thread): Pass x to pure().
be223aaf 807 From Patrik Marlier <patrick.marlier@gmail.com>.
1f53a8e6 808
c898f7b8
TR
8092011-12-24 Torvald Riegel <triegel@redhat.com>
810
811 * beginend.cc (GTM::gtm_thread::trycommit): Don't enforce
812 privatization safety if already in serial mode.
813
610e3901
TR
8142011-12-24 Torvald Riegel <triegel@redhat.com>
815
816 * beginend.cc (GTM::gtm_thread::restart): Add and handle
817 finish_serial_upgrade parameter.
818 * libitm.h (GTM::gtm_thread::restart): Adapt declaration.
819 * config/linux/rwlock.cc (GTM::gtm_rwlock::write_lock_generic):
820 Don't unset reader flag.
821 (GTM::gtm_rwlock::write_upgrade_finish): New.
822 * config/posix/rwlock.cc: Same.
823 * config/linux/rwlock.h (GTM::gtm_rwlock::write_upgrade_finish):
824 Declare.
825 * config/posix/rwlock.h: Same.
826 * method-serial.cc (GTM::gtm_thread::serialirr_mode): Unset reader
827 flag after commit or after rollback when restarting.
828
799142bf
TR
8292011-12-24 Torvald Riegel <triegel@redhat.com>
830
831 * beginend.cc (GTM::gtm_thread::begin_transaction): Add comment.
832 (GTM::gtm_thread::try_commit): Changed memory order.
833 * config/linux/alpha/futex_bits.h (sys_futex0): Take atomic int
834 as parameter.
835 * config/linux/x86/futex_bits.h (sys_futex0): Same.
836 * config/linux/sh/futex_bits.h (sys_futex0): Same.
837 * config/linux/futex_bits.h (sys_futex0): Same.
838 * config/linux/futex.cc (futex_wait, futex_wake): Same.
839 * config/linux/futex.h (futex_wait, futex_wake): Same.
840 * config/linux/rwlock.h (gtm_rwlock::writers,
841 gtm_rwlock::writer_readers, gtm_rwlock::readers): Change to atomic
842 ints.
843 * config/linux/rwlock.cc (gtm_rwlock::read_lock,
844 gtm_rwlock::write_lock_generic, gtm_rwlock::read_unlock,
845 gtm_rwlock::write_unlock): Fix memory orders and fences.
846 * config/posix/rwlock.cc (gtm_rwlock::read_lock,
847 gtm_rwlock::write_lock_generic, gtm_rwlock::read_unlock,
848 gtm_rwlock::write_unlock): Same.
849 * config/linux/rwlock.h (gtm_rwlock::summary): Change to atomic int.
850 * method-gl.cc (gl_mg::init, gl_wt_dispatch::memtransfer_static,
851 gl_wt_dispatch::memset_static, gl_wt_dispatch::begin_or_restart):
852 Add comments.
853 (gl_wt_dispatch::pre_write, gl_wt_dispatch::validate,
854 gl_wt_dispatch::load, gl_wt_dispatch::store,
855 gl_wt_dispatch::try_commit, gl_wt_dispatch::rollback): Fix memory
856 orders and fences. Add comments.
857
b0f96e35
JJ
8582011-12-21 Jakub Jelinek <jakub@redhat.com>
859
860 * Makefile.am (AM_CXXFLAGS): Put $(XCFLAGS) first.
861 * Makefile.in: Regenerated.
862
cc163247
KK
8632011-12-17 Kaz Kojima <kkojima@gcc.gnu.org>
864
865 * configure.tgt: Add sh* case.
866 * config/sh/target.h: New file.
867 * config/sh/sjlj.S: New file.
868 * config/linux/sh/futex_bits.h: New file.
869
aebac0ca
RH
8702011-12-14 Richard Henderson <rth@redhat.com>
871
872 * config/arm/hwcap.h, config/arm/hwcap.cc: New files.
873 * config/arm/sjlj.S, config/arm/target.h: New files.
874 * config/generic/asmcfi.h (cfi_adjust_cfa_offset): New.
875 (cfi_rel_offset): New.
876 * config/linux/futex_bits.h: New file.
877 * config/linux/futex.cc: Include futex_bits.h here...
878 * config/linux/futex.h: ... not here.
879 * Makefile.am (libitm_la_SOURCES) <ARCH_ARM>: Add hwcap.cc.
880 * configure.ac (ARCH_AM): New conditional.
881 * Makefile.in, configure: Rebuild.
882 * configure.tgt: Handle ARM.
883
36cfbee1
RH
8842011-12-13 Richard Henderson <rth@redhat.com>
885
5d9d05d3
RH
886 * config/posix/rwlock.cc (gtm_rwlock::write_lock_generic): Fix
887 signed/unsigned comparison werror.
888
36cfbee1
RH
889 * local_atomic: New file.
890 * libitm_i.h: Include it.
891 (gtm_thread::shared_state): Use atomic template.
892 * beginend.cc (GTM::gtm_clock): Use atomic template.
893 (global_tid): Use atomic template if 64-bit atomics available.
894 (gtm_thread::gtm_thread): Update shared_state access.
895 (gtm_thread::trycommit): Likewise.
896 (choose_code_path): Update global_tid access.
897 * method-gl.cc (gl_mg::orec): Use atomic template. Update all users.
898 * stmlock.h (GTM::gtm_clock): Use atomic template.
899 (gtm_get_clock, gtm_inc_clock): Update accesses.
900 * config/linux/rwlock.cc (gtm_rwlock::read_lock): Remove
901 redundant __sync_synchronize after atomic shared_state access.
902 * config/posix/rwlock.cc (gtm_rwlock::read_lock): Likewise.
903 (gtm_rwlock::write_lock_generic): Likewise.
904 (gtm_rwlock::read_unlock): Likewise.
905 * config/alpha/target.h (atomic_read_barrier): Remove.
906 (atomic_write_barrier): Remove.
907 * config/x86/target.h (atomic_read_barrier): Remove.
908 (atomic_write_barrier): Remove.
909
062f93f2
RH
9102011-11-30 Richard Henderson <rth@redhat.com>
911
912 * libitm_i.h (GTM_longjmp): Swap first and second arguments.
913 * beginend.c (_ITM_abortTransaction): Update to match.
914 (GTM::gtm_thread::restart): Likewise.
915 * config/alpha/sjlj.S (GTM_longjmp): Likewise.
916 * config/x86/sjlj.S (GTM_longjmp): Likewise.
917
bd8aaa86
IS
9182011-11-23 Iain Sandoe <iains@gcc.gnu.org>
919
920 * Makefile.am (libitm_la_LDFLAGS): Remove "-no-undefined".
921 * Makefile.in: Regenerate.
922
8cf36bb3
IS
9232011-11-22 Iain Sandoe <iains@gcc.gnu.org>
924
925 * configure.ac: Use GCC_CHECK_ELF_STYLE_WEAKREF.
926 * alloc_cpp.cc: Generate dummy functions if we don't
927 HAVE_ELF_STYLE_WEAKREF.
928 * eh_cpp.cc: Likewise.
929 * configure: Regenerate.
930 * aclocal.m4: Likewise.
931 * config.h.in: Likewise.
932 * Makefile.in: Likewise.
933 * testsuite/Makefile.in: Likewise.
934
0b41ebef
IS
9352011-11-22 Iain Sandoe <iains@gcc.gnu.org>
936
937 * config/x86/sjlj.S (CONCAT1, CONCAT2, SYM): Respond to
938 __USER_LABEL_PREFIX__ for targets that use it.
8cf36bb3 939 (TYPE, SIZE, HIDDEN): New macros to assist on non-elf targets.
0b41ebef
IS
940 (_ITM_beginTransaction): Use SYM, TYPE, SIZE macros to assist
941 in portability to non-elf targets.
8cf36bb3 942 (GTM_longjmp): Likewise.
0b41ebef
IS
943 * libitm_i.h (begin_transaction): Apply __USER_LABEL_PREFIX__
944 where required.
945
9c9d352a
IS
9462011-11-22 Iain Sandoe <iains@gcc.gnu.org>
947
948 * testsuite/libitm.c/memcpy-1.c: Allow for MAP_ANON spelling.
949 * testsuite/libitm.c/memset-1.c: Likewise.
950
c6084f68
AT
9512011-11-21 Andreas Tobler <andreast@fgznet.ch>
952
953 * configure: Regenerate.
954
adcd36bc
RO
9552011-11-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
956
957 * acinclude.m4 (LIBITM_CHECK_LINKER_FEATURES): Handle gold.
958 (LIBITM_ENABLE_SYMVERS): Handle sun style.
959 * Makefile.am: Handle sun style versioning.
960 (libitm_la_LINK): Add $(libitm_la_LDFLAGS).
961 * configure: Regenerate.
962 * Makefile.in: Regenerate.
963
59659b59
RO
9642011-11-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
965
966 * config/generic/asmcfi.h: Fix comment.
967 * config/x86/sjlj.S (_ITM_beginTransaction): Provide ELF PIC code
968 sequence without .hidden support, error for non-ELF targets.
969 (GTM_longjmp) [__ELF__]: Only use .hidden if
970 HAVE_ATTRIBUTE_VISIBILITY.
971
d846e425
RO
9722011-11-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
973
974 * alloc_cpp.cc [__osf__] (_ZnwX, _ZdlPv, _ZnaX, _ZdaPv,
975 _ZnwXRKSt9nothrow_t, _ZdlPvRKSt9nothrow_t, _ZdaPvRKSt9nothrow_t):
976 Dummy functions.
977 * eh_cpp.cc [__osf__] (__cxa_allocate_exception, __cxa_throw,
978 __cxa_begin_catch, __cxa_end_catch, __cxa_tm_cleanup): Likewise.
979
80713347
UB
9802011-11-16 Uros Bizjak <ubizjak@gmail.com>
981
982 PR bootstrap/51098
983 * acinclude.m4 (LIBITM_CHECK_AS_AVX): Fix target selector.
984 * configure: Regenerate.
985
2841f85e
L
9862011-11-14 H.J. Lu <hongjiu.lu@intel.com>
987
988 * testsuite/lib/libitm.exp: Check ia32 instead of ilp32.
989
8851b429
RO
9902011-11-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
991
992 * config/alpha/sjlj.S (_ITM_beginTransaction) [!__ELF__]: Don't use
993 .hidden.
994 (.note.GNU-stack): Only use if __linux__.
995 * alloc_cpp.cc [!__osf__] (_ZnaXRKSt9nothrow_t): Dummy function.
996 * testsuite/libitm.c/notx.c: Use dg-options "-pthread".
997 * testsuite/libitm.c/reentrant.c: Likewise.
998 * testsuite/libitm.c/simple-2.c: Likewise.
999 * testsuite/libitm.c/txrelease.c: Likewise.
1000 * testsuite/libitm.c++/static_ctor.C: Likewise.
1001
d4b17902
RH
10022011-11-10 Richard Henderson <rth@redhat.com>
1003
1004 * config/x86/x86_avx.cc: Remove #undef __AVX__ hack. Tidy comments.
1005 * Makefile.am (x86_avx.lo): Only add -mavx if ARCH_X86_AVX.
1006 * configure.ac (ARCH_X86_AVX): New conditional.
1007 * Makefile.in, configure: Rebuild.
1008
430616e7
RH
10092011-11-09 Richard Henderson <rth@redhat.com>
1010
1011 * acinclude.m4 (LIBITM_CHECK_AS_AVX): New.
1012 * configure.ac: Use it.
1013 * config.h.in, configure: Rebuild.
1014 * config/x86/x86_avx.cc: Handle !HAVE_AS_AVX.
1015
79b1edb6
RH
10162011-11-09 Richard Henderson <rth@redhat.com>
1017
1018 * barrier.tpl, memcpy.cc, memset.cc, method-wbetl.cc: Remove file.
1019 * config/alpha/unaligned.h: Remove file.
1020 * config/generic/unaligned.h: Remove file.
1021 * config/x86/unaligned.h: Remove file.
1022 * config/generic/cachepage.h: Remove file.
1023 * config/posix/cachepage.cc: Remove file.
1024 * config/generic/cacheline.cc: Remove file.
1025 * config/x86/cacheline.cc: Remove file.
1026 * config/generic/cacheline.h (gtm_cacheline): Remove the
1027 store_mask, copy_mask, copy_mask_wb methods.
1028 * config/x86/cacheline.h: Likewise.
1029 * config/alpha/cacheline.h: Fall back to generic after setting size.
1030 * config/generic/tls.cc (gtm_mask_stack): Remove.
1031 * config/x86/x86_avx.cc (GTM_vpperm_shift): Remove.
1032 (GTM_vpalignr_table): Remove.
1033 * config/x86/x86_sse.cc (GTM_palignr_table): Remove.
1034 (GTM_pshift_table): Remove.
1035 * config/libitm_i.h: Don't include cachepage.h.
1036 * Makefile.am (libitm_la_SOURCES): Remove cacheline.cc, cachepage.cc
1037 * Makefile.in, testsuite/Makefile.in: Rebuild.
1038
4bdd090f
RH
10392011-11-09 Richard Henderson <rth@redhat.com>
1040
8ee9fac2
RH
1041 * config/x86/cacheline.h (gtm_cacheline::store_mask): Use .byte
1042 to emit branch prediction hint.
1043
9bdc6343
RH
1044 * config/x86/sjlj.S: Protect elf directives with __ELF__.
1045 Protect .note.GNU-stack with __linux__.
1046
4bdd090f
RH
1047 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Test it.
1048 * configure, aclocal.m4, config.h.in: Rebuild.
1049 * config/generic/asmcfi.h: New file.
1050 * config/x86/sjlj.S: Use it.
1051
4408b086
RH
10522011-11-08 Richard Henderson <rth@redhat.com>
1053
1054 * local.cc (_ITM_LB): Use a normal call, not a function alias.
1055
01f3428c
RH
10562011-11-08 Richard Henderson <rth@redhat.com>
1057
3d3b05ff
RH
1058 * configure.tgt: Test correct directory for supported cpus.
1059
01f3428c
RH
1060 * configure.ac: Exit if unsupported.
1061 * configure: Rebuild.
1062 * configure.tgt: Delete boilerplate from libgomp for unsupported
1063 targets. Set UNSUPPORTED for unsupported targets.
1064
07f03cd3
RO
10652011-11-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1066
1067 * configure.tgt: Handle i386 like i[456]86.
1068 * config/generic/tls.h [!HAVE_ARCH_GTM_THREAD] (gtm_thr): Don't
1069 take address.
1070 * config/generic/tls.cc [!HAVE_ARCH_GTM_THREAD ||
1071 !HAVE_ARCH_GTM_THREAD_DISP] (_gtm_thr_tls): New variable.
1072
0a35513e
AH
10732011-11-05 Aldy Hernandez <aldyh@redhat.com>
1074
1075 * method-wbetl.cc: Update copyright notice.
1076 * aatree.cc: Same.
1077 * util.cc: Same.
1078 * libitm.h: Same.
1079 * memset.cc: Same.
1080 * eh_cpp.cc: Same.
1081 * barrier.tpl: Same.
1082 * useraction.cc: Same.
1083 * stmlock.h: Same.
1084 * memcpy.cc: Same.
1085 * common.h: Same.
1086 * config/generic/tls.cc: Same.
1087 * config/generic/cacheline.h: Same.
1088 * config/generic/cachepage.h: Same.
1089 * config/generic/cacheline.cc: Same.
1090 * config/generic/unaligned.h: Same.
1091 * config/x86/cacheline.h: Same.
1092 * config/x86/cacheline.cc: Same.
1093 * config/x86/unaligned.h: Same.
1094 * config/alpha/cacheline.h: Same.
1095 * config/alpha/unaligned.h: Same.
1096 * config/alpha/sjlj.S: Same.
1097 * config/posix/cachepage.cc: Same.
1098 * config/linux/futex.h: Same.
1099 * config/linux/alpha/futex_bits.h: Same.
1100
11012011-11-04 Torvald Riegel <triegel@redhat.com>
1102
1103 * libitm.texi: No cover text and invariant sections.
1104
11052011-11-03 Richard Henderson <rth@redhat.com>
1106
1107 * local_type_traits: New file.
1108 * libitm_i.h: Use it. Use C headers, not C++ wrappers.
1109
11102011-11-03 Richard Henderson <rth@redhat.com>
1111
1112 * configure.ac: Don't test for gfortran.
1113 * configure: Rebuild.
1114
1115 * testsuite/lib/libitm.exp: Don't include gfortran-dg.exp.
1116 * testsuite/libitm.c++/c++.exp: Don't use gfortran-dg-runtest.
1117
11182011-11-03 Aldy Hernandez <aldyh@redhat.com>
1119
1120 * testsuite/libitm.c/memcpy-1.c: Add copyright notice.
1121 * testsuite/libitm.c/memset-1.c: Same.
1122 * testsuite/libitm.c/c.exp: Same.
1123 * testsuite/lib/libitm-dg.exp: Same.
1124 * testsuite/lib/libitm.exp: Same.
1125 * testsuite/libitm.c++/c++.exp: Same.
1126
11272011-11-03 Aldy Hernandez <aldyh@redhat.com>
1128
1129 * testsuite/config/default.exp: Update copyright date.
1130 * configure.ac: Add copyright info.
1131 * configure.tgt: Same.
1132
11332011-11-03 Aldy Hernandez <aldyh@redhat.com>
1134
1135 * testsuite/libitm.c/reentrant.c: XFAIL.
1136 * testsuite/libitm.c++/static_ctor.C: XFAIL.
1137
11382011-10-29 Torvald Riegel <triegel@redhat.com>
1139
1140 * beginend.cc (GTM::gtm_thread::rollback): Add aborting flag and
1141 handle aborts.
1142 (_ITM_abortTransaction): Handle aborts of outer transactions.
1143 * libitm_i.h: Same.
1144 * eh_cpp.cc (GTM::gtm_thread::revert_cpp_exceptions): Fix assertion.
1145 * libitm.texi: Document aborts of outer transactions.
1146 * testsuite/libitm.c/cancel.c: New file.
1147
11482011-10-19 Torvald Riegel <triegel@redhat.com>
1149
1150 * testsuite/*: Change __transaction to __transaction_atomic or
1151 __transaction_relaxed.
1152
11532011-10-19 Torvald Riegel <triegel@redhat.com>
1154
1155 * config/linux/x86/tls.h (abi_disp): Make TLS slot read volatile.
1156 (gtm_thr): Same.
1157
11582011-10-19 Torvald Riegel <triegel@redhat.com>
1159
1160 * libitm_i.h: Add gl_wt dispatch.
1161 * retry.cc (parse_default_method): Same.
1162 * method-gl.cc: New file.
1163 * Makefile.am: Use method-gl.cc.
1164 * Makefile.in: Rebuild.
1165
11662011-10-19 Torvald Riegel <triegel@redhat.com>
1167
1168 * beginend.cc (GTM::gtm_thread::trycommit): Ensure privatization
1169 safety if requested by a TM method.
1170 * dispatch.h (GTM::abi_dispatch::trycommit): Add parameter for
1171 privatization safety.
1172 * method-serial.cc: Same.
1173
11742011-10-19 Torvald Riegel <triegel@redhat.com>
1175
1176 * libitm_i.h: Renamed gtm_local_undo to gtm_undolog_entry.
1177 (GTM::gtm_thread): Renamed local_undo to undolog. Renamed
1178 undolog-related member functions from *_local to *_undolog.
1179 * local.cc (gtm_thread::commit_undolog): Same.
1180 * beginend.cc (GTM::gtm_thread::trycommit): Same.
1181 (GTM::gtm_thread::rollback): Roll back undolog before
1182 dispatch-specific rollback.
1183
11842011-10-19 Torvald Riegel <triegel@redhat.com>
1185
1186 * retry.cc (GTM::gtm_thread::decide_retry_strategy): Handle
1187 re-initialization of the current method group.
1188 * libitm_i.h (GTM::gtm_restart_reason): Add restart reason for this.
1189
11902011-10-19 Torvald Riegel <triegel@redhat.com>
1191
1192 * alloc.cc (commit_allocations_2): Do not free transaction-local
1193 memory when committing a nested transaction.
1194
11952011-10-19 Torvald Riegel <triegel@redhat.com>
1196
1197 * method-serial.cc (GTM::gtm_thread::serialirr_mode): Fixed: Use
1198 serial-irrevocable dispatch, not serial.
1199
12002011-10-19 Torvald Riegel <triegel@redhat.com>
1201
1202 * libitm_i.h (GTM::gtm_restart_reason): Re-arrange and clean up
1203 declarations.
1204 * dispatch.h (GTM::abi_dispatch::begin_or_restart): New.
1205 * method-serial.cc: Implement begin_or_restart().
1206 * beginend.cc (GTM::gtm_thread::begin_transaction): Call
1207 dispatch-specific begin_or_restart().
1208 (GTM::gtm_thread::restart): Same.
1209
12102011-08-23 Torvald Riegel <triegel@redhat.com>
1211
1212 * retry.cc (GTM::gtm_thread::decide_retry_strategy): Cleanup. Fix
1213 restarting without switching to serial mode.
1214 (GTM::gtm_thread::decide_begin_dispatch): Let the caller set the
1215 transaction state. Choose closed-nesting alternative if available.
1216 (GTM::gtm_thread::set_default_dispatch): New.
1217 (parse_default_method): New.
1218 (GTM::gtm_thread::number_of_threads_changed): New.
1219 * method-serial.cc (GTM::serial_mg): New method group class.
1220 (GTM::serialirr_dispatch): Belongs to serial_mg. Remove reinit and
1221 fini.
1222 (GTM::serial_dispatch): Same.
1223 (GTM::serialirr_onwrite_dispatch): Same.
1224 (GTM::gtm_thread::serialirr_mode): Remove calls to fini.
1225 * beginend.cc (GTM::gtm_thread::~gtm_thread): Maintain number of
1226 registered threads.
1227 (GTM::gtm_thread::gtm_thread): Same.
1228 (_ITM_abortTransaction): Remove calls to abi_dispatch::fini().
1229 (GTM::gtm_thread::trycommit): Same. Reset number of restarts.
1230 (GTM::gtm_thread::begin_transaction): Let decide_begin_dispatch()
1231 choose dispatch but set state according to dispatch here.
1232 * dispatch.h (GTM::abi_dispatch::fini): Move to method group.
1233 (GTM::method_group): New class.
1234 (GTM::abi_dispatch): Add comments. Maintain pointer to method_group.
1235 * libitm_i.h (GTM::gtm_thread): Add declarations for new members.
1236 * libitm.texi: Document TM methods, method groups, method life cycle.
1237 Rename method sets to method groups.
1238
12392011-08-23 Torvald Riegel <triegel@redhat.com>
1240
1241 * config/x86/tls.h: Moved to ...
1242 * config/linux/x86/tls.h: ... here.
1243
12442011-08-23 Torvald Riegel <triegel@redhat.com>
1245
1246 * config/x86/tls.h: Use __x86_64__ instead of __LP64__.
1247 Add X32 support.
1248 * config/x86/sjlj.S: Same.
1249
12502011-08-19 Torvald Riegel <triegel@redhat.com>
1251
1252 * config/linux/rwlock.h: New file.
1253 * config/linux/rwlock.c: New file.
1254 * configure.ac: Reenable futex support (undo SVN rev 157758).
1255 * Makefile.am: Same.
1256 * configure.tgt: Same.
1257 * config/linux/alpha/futex_bits.h: Same.
1258 * config/linux/futex.h: Same. Return number of woken processes.
1259 * config/linux/futex.cc: Same.
1260 (futex_wait): Remove spinning.
1261 * config/linux/x86/futex_bits.h: Same. Set futex timeout to zero.
1262 Use __x86_64__ instead of __LP64__.
1263 * aclocal.m4: Include generic futex checks.
1264 * configure: Rebuild.
1265 * Makefile.in: Rebuild.
1266 * testsuite/Makefile.in: Rebuild.
1267 * beginend.cc: Include pthread.h.
1268 * config/posix/cachepage.cc: Same.
1269
12702011-08-12 Torvald Riegel <triegel@redhat.com>
1271
1272 * config/x86/tls.h (gtm_tx, set_gtm_tx, setup_gtm_thr): Removed.
1273 (abi_disp, set_abi_disp): Move to tx's TLS slot.
1274 (set_gtm_thr): New.
1275 * config/generic/tls.h (gtm_tx, set_gtm_tx, setup_gtm_thr): Removed.
1276 (set_gtm_thr): New.
1277 (GTM::gtm_thread::thread_num): Removed.
1278 (GTM::gtm_thread): Renamed to GTM::gtm_thread_tls.
1279 * libitm_i.h (GTM::gtm_transaction): Renamed to GTM::gtm_thread. More
1280 tx-to-thread renaming.
1281 * beginend.cc: Adapted to tx-to-thread renaming.
1282 (GTM::gtm_thread::~gtm_thread): Extracted from thread_exit_handler().
1283 (GTM::gtm_thread::gtm_thread): Extracted from begin_transaction().
1284 * query.cc (_ITM_getTransactionId, _ITM_inTransaction): Renamed
1285 gtm_transaction to gtm_thread.
1286 (_ITM_getThreadnum): Removed. Not supported anymore.
1287 * testsuite/libitm.c/notx.c (main): Removed _ITM_getThreadnum call.
1288 * libitm.texi: Documented that _ITM_getThreadnum is not supported.
1289 * useraction.cc: Renamed gtm_transaction to gtm_thread. Adapted to
1290 gtm_tx-to-gtm_thr renaming if necessary.
1291 * eh_cpp.cc: Same.
1292 * local.cc: Same.
1293 * retry.cc: Same.
1294 * clone.cc: Same.
1295 * alloc.cc: Same.
1296 * alloc_c.cc: Same.
1297 * alloc_cpp.cc: Same.
1298 * method-serial.cc: Same.
1299 * config/generic/tls.cc: Same.
1300 * config/posix/rwlock.h (gtm_rwlock): Same.
1301 * config/posix/rwlock.cc: Same. Adapted to more tx-to-thread renaming.
1302
13032011-08-12 Torvald Riegel <triegel@redhat.com>
1304
1305 * config/posix/rwlock.cc (gtm_rwlock::read_lock): Changed locking
1306 implementation.
1307 (gtm_rwlock::read_unlock): Same.
1308 (gtm_rwlock::write_lock_generic): New. Generalized from ...
1309 (gtm_rwlock::write_lock, gtm_rwlock::write_upgrade): ... these.
1310 * libitm_i.h (GTM::gtm_transaction): Added shared_state.
1311 * config/posix/rwlock.h (GTM::gtm_rwlock): Removed a_reader and
1312 w_upgrade. Replaced by per-transaction flags (in shared_state).
1313 Added c_confirmed_writers.
1314 (GTM::gtm_rwlock::read_lock, GTM::gtm_rwlock::read_unlock,
1315 GTM::gtm_rwlock::write_upgrade): Add tx parameter.
1316 * retry.cc (GTM::gtm_transaction::decide_retry_strategy): Same.
1317 * method-serial.cc (GTM::gtm_transaction::serialirr_mode): Same.
1318 * beginend.cc (GTM::gtm_transaction::begin_transaction,
1319 _ITM_abortTransaction, GTM::gtm_transaction::trycommit): Same.
1320 * libitm.texi: Document locking conventions and implementations in
1321 libitm.
1322
13232011-08-12 Torvald Riegel <triegel@redhat.com>
1324
1325 * libitm_i.h (next_tx): Add list of all threads' transaction.
1326 * beginend.cc (GTM::gtm_transaction::begin_transaction): Register
1327 transaction with list of transactions and ...
1328 (thread_exit_handler): ... deregister here.
1329 * config/alpha/target.h: Add HW_CACHELINE_SIZE setting.
1330 * config/x86/target.h: Same.
1331
13322011-08-12 Torvald Riegel <triegel@redhat.com>
1333
1334 * testsuite/libitm.c++/static_ctor.C: New file.
1335
13362011-08-12 Torvald Riegel <triegel@redhat.com>
1337
1338 * testsuite/libitm.c/reentrant.c: New file.
1339
13402011-08-12 Torvald Riegel <triegel@redhat.com>
1341
1342 * config/generic/tls.h: Remove the free list for transactions and ...
1343 * beginend.cc (GTM::gtm_transaction::operator new): ... allocate ...
1344 (GTM::gtm_transaction::operator delete): ... and release here.
1345 (thread_exit_handler): New. Delete tx when thread terminates.
1346 (thread_exit_init): New.
1347 (GTM::gtm_transaction::begin_transaction): Set up on-exit handler.
1348 * testsuite/libitm.c/txrelease.c: New file.
1349
13502011-08-12 Torvald Riegel <triegel@redhat.com>
1351
1352 * query.cc (_ITM_getThreadnum): Set up gtm_thread if necessary.
1353 * testsuite/libitm.c/notx.c: New file.
1354
13552011-08-12 Torvald Riegel <triegel@redhat.com>
1356
1357 * config/generic/tls.h (gtm_thread): Move local_tid from here ...
1358 * libitm_i.h (local_tid): ... to here.
1359 * beginend.cc (GTM::gtm_transaction::begin_transaction): Same.
1360 (GTM::gtm_transaction::operator new): Set up gtm_thread if necessary.
1361
13622011-08-12 Torvald Riegel <triegel@redhat.com>
1363
1364 * retry.cc (GTM::gtm_transaction::decide_begin_dispatch): Use
1365 serialirr_onwrite_dispatch as new default for now.
1366 * method-serial.cc (serialirr_onwrite_dispatch): New.
1367 (GTM::dispatch_serialirr_onwrite): New.
1368 * libitm_i.h: Same.
1369
13702011-08-12 Torvald Riegel <triegel@redhat.com>
1371
1372 * beginend.cc (GTM::gtm_transaction::rollback): Roll back tx id as well.
1373 * query.cc (_ITM_getTransactionId): There is no active transaction if
1374 the current nesting level is zero.
1375
13762011-07-28 Torvald Riegel <triegel@redhat.com>
1377
1378 * beginend.cc (GTM::gtm_transaction::rollback): Fix nesting level
1379 rollback.
1380
13812011-07-28 Torvald Riegel <triegel@redhat.com>
1382
1383 * retry.cc (GTM::gtm_transaction::decide_begin_dispatch): Get
1384 transaction properties from the caller instead of from the
1385 transaction object.
1386 * libitm_i.h: Same.
1387 * beginend.cc (GTM::gtm_transaction::begin_transaction): Same.
1388
13892011-07-28 Torvald Riegel <triegel@redhat.com>
1390
1391 * local.cc (gtm_transaction::rollback_local): Support closed nesting.
1392 * eh_cpp.cc (GTM::gtm_transaction::revert_cpp_exceptions): Same.
1393 * dispatch.h: Same.
1394 * method-serial.cc: Same.
1395 * beginend.cc (GTM::gtm_transaction::begin_transaction): Change to
1396 flat nesting as default, and closed nesting on demand.
1397 (GTM::gtm_transaction::rollback): Same.
1398 (_ITM_abortTransaction): Same.
1399 (GTM::gtm_transaction::restart): Same.
1400 (GTM::gtm_transaction::trycommit): Same.
1401 (GTM::gtm_transaction::trycommit_and_finalize): Removed.
1402 (choose_code_path): New.
1403 (GTM::gtm_transaction_cp::save): New.
1404 (GTM::gtm_transaction_cp::commit): New.
1405 * query.cc (_ITM_inTransaction): Support flat nesting.
1406 * libitm_i.h (GTM::gtm_transaction_cp): New helper struct for nesting.
1407 (GTM::gtm_transaction): Support flat and closed nesting.
1408 * alloc.cc (commit_allocations_2): New.
1409 (commit_cb_data): New helper struct.
1410 (GTM::gtm_transaction::commit_allocations): Handle nested
1411 commits/rollbacks.
1412 * libitm.texi: Update user action section, add description of nesting.
1413
14142011-07-28 Torvald Riegel <triegel@redhat.com>
1415
1416 * libitm_i.h: Add closed nesting as restart reason.
1417 * retry.cc (GTM::gtm_transaction::decide_retry_strategy): Same.
1418
14192011-07-28 Torvald Riegel <triegel@redhat.com>
1420
1421 * useraction.cc: Use vector instead of list to store actions.
1422 Also support partial rollbacks for closed nesting.
1423 * libitm_i.h (GTM::gtm_transaction::user_action): Same.
1424 * beginend.cc: Same.
1425
14262011-07-28 Torvald Riegel <triegel@redhat.com>
1427
1428 * dispatch.h (GTM::abi_dispatch): Add can_run_uninstrumented_code and
1429 closed_nesting flags, as well as a closed nesting alternative.
1430 * method-serial.cc: Same.
1431 (serial_dispatch): Renamed to serialirr_dispatch.
1432 (GTM::dispatch_serialirr): Same.
1433 (serial_dispatch_ul): Renamed to serial_dispatch.
1434 (GTM::dispatch_serial): Same.
1435
14362011-07-28 Torvald Riegel <triegel@redhat.com>
1437
1438 * libitm.h (_ITM_codeProperties): Change pr_hasElse to the ABI's value.
1439
14402011-07-28 Torvald Riegel <triegel@redhat.com>
1441
1442 * aatree.h (aa_tree::remove): New.
1443 (aa_tree::operator new): Add placement new.
1444
14452011-07-02 Torvald Riegel <triegel@redhat.com>
1446
1447 * containers.h: New file.
1448 * util.cc (xmalloc, xrealloc): Accept cacheline-alloc flag.
1449 * libitm_i.h (xmalloc, xrealloc): Moved declarations from here ...
1450 * common.h: ... to here.
1451 (local_undo): Use GTM::vector for gtm_transaction::local_undo.
1452 * local.cc: Same.
1453
14542011-06-30 Torvald Riegel <triegel@redhat.com>
1455
1456 * libitm_i.h (STATE_ABORTING): Remove.
1457 * beginend.cc (_ITM_abortTransaction): Same.
1458 (GTM::gtm_transaction::trycommit_and_finalize): Same.
1459 * libitm.h (_ITM_registerThrownObject, _ITM_tryCommitTransaction): Remove.
1460 (_ITM_rollbackTransaction): Remove.
1461 * beginend.cc: Same.
1462 * libitm.map: Same.
1463 * libitm.texi: Document these ABI changes.
1464
14652011-06-30 Torvald Riegel <triegel@redhat.com>
1466
1467 * libitm.texi: New file.
1468 * Makefile.am: Add libitm.texi.
1469 * Makefile.in: Rebuild.
1470
14712011-06-30 Torvald Riegel <triegel@redhat.com>
1472
1473 * libitm_i.h: Move parts to common.h and dispatch.h.
1474 * common.h: New file.
1475 * dispatch.h: New file, new dispatch class.
1476 Rename GTM::abi_dispatch::lock_type to ls_modifier.
1477 RenameGTM::abi_dispatch::NOLOCK to NONTXNAL.
1478 * beginend.cc (GTM::gtm_transaction::begin_transaction): Delegate mode
1479 decision to retry.cc.
1480 * retry.cc (GTM::gtm_transaction::decide_retry_strategy): Use serial mode
1481 only.
1482 (GTM::gtm_transaction::decide_begin_dispatch): Same.
1483 * method-serial.cc: Adapt to new dispatch. Add serial mode with undo
1484 logging.
1485 * barrier.cc: Use new barriers definitions.
1486 (abi_dispatch::memmove_overlap_check): New.
1487 * config/x86/x86_sse.cc: Same.
1488 * config/x86/x86_avx.cc: Same.
1489 * Makefile.am: Don't build readonly and wbetl methods, memset.cc and
1490 memcpy.cc.
1491 * Makefile.in: Rebuild.
1492 * method-readonly.cc: Remove.
1493 * method-wbetl.cc: Rename GTM::abi_dispatch::lock_type to ls_modifier.
1494 Rename GTM::abi_dispatch::NOLOCK to NONTXNAL.
1495
14962011-06-30 Torvald Riegel <triegel@redhat.com>
1497
1498 * alloc_c.cc (_ITM_dropReferences): Don't support it anymore.
1499 * testsuite/libitm.c++/dropref.C: _ITM_dropReferences is expected to fail.
1500 * testsuite/libitm.c/dropref-2.c: Same.
1501 * testsuite/libitm.c/dropref.c: Same.
1502
15032011-06-30 Torvald Riegel <triegel@redhat.com>
1504
1505 * config/generic/tls.h (gtm_disp): Rename to abi_disp.
1506 * config/generic/tls.h (set_gtm_disp): Rename to set_abi_disp.
1507 * libitm_i.h: Rename gtm_dispatch to abi_dispatch.
1508 * alloc_c.cc: Same.
1509 * barrier.tpl: Same.
1510 * beginend.c: Same.
1511 * config/generic/tls.h: Same.
1512 * config/x86/tls.h: Same.
1513 * libitm_i.h: Same.
1514 * memcpy.cc: Same.
1515 * memset.cc: Same.
1516 * method-readonly.cc: Same.
1517 * method-serial.cc: Same.
1518 * method-wbetl.cc: Same.
1519 * retry.cc: Same.
1520
15212011-03-03 Richard Henderson <rth@redhat.com>
1522
1523 * config/posix/rwlock.cc (write_upgrade): Add missing case.
1524 From Patrik Marlier <patrick.marlier@unine.ch>.
1525
15262011-02-03 Richard Henderson <rth@redhat.com>
1527
1528 * acinclude.m4 (LIBITM_CHECK_SIZE_T_MANGLING): New.
1529 * configure.ac: Use it.
1530 * configure, config.h.in: Rebuild.
1531 * alloc_cpp.cc (_ZnwX): Use MANGLE_SIZE_T in constructing the name.
1532 (_ZnaX, _ZnwXRKSt9nothrow_t, _ZnaXRKSt9nothrow_t, _ZGTtnwX,
1533 _ZGTtnaX, _ZGTtnwXRKSt9nothrow_t, _ZGTtnaXRKSt9nothrow_t): Likewise.
1534 * libitm.map: Use wildcards to match size_t mangling.
1535
15362010-12-14 Richard Henderson <rth@redhat.com>
1537
1538 * beginend.cc (GTM::gtm_transaction::begin_transaction): Allocate
1539 blocks of TIDs per thread.
1540 * config/generic/tls.h (struct gtm_thread): Add local_tid member.
1541 (setup_gtm_thr): Return the thread structure.
1542 * config/x86/tls.h (setup_gtm_thr): Likewise.
1543
15442010-12-14 Richard Henderson <rth@redhat.com>
1545
1546 * clone.cc (table_lock): Remove.
1547 (find_clone): Don't take it.
1548 (ExcludeTransaction): New helper class.
1549 (_ITM_registerTMCloneTable): Use it.
1550 (_ITM_deregisterTMCloneTable): Likewise.
1551
15522010-12-14 Richard Henderson <rth@redhat.com>
1553
1554 * config/x86/tls.h: New file.
1555
15562010-07-15 Richard Henderson <rth@redhat.com>
1557
1558 * Makefile.am (AM_CXXFLAGS): Add -funwind-tables.
1559 * Makefile.in: Rebuild.
1560
15612010-07-13 Aldy Hernandez <aldyh@redhat.com>
1562
1563 * method-wbetl.cc (trydropreference): Fix source line.
1564
15652010-07-13 Aldy Hernandez <aldyh@redhat.com>
1566
1567 * libitm.h: Add comment.
1568 * libitm_i.h (begin_transaction): Add ITM_REGPARM.
1569
15702010-07-07 Aldy Hernandez <aldyh@redhat.com>
1571
1572 * configure.ac: Call LIBITM_CHECK_64BIT_SYNC_BUILTINS.
1573 * beginend.cc (begin_transaction): If 64-bit sync builtins are not
1574 available, use pthread mutexes.
1575 * acinclude.m4 (LIBITM_CHECK_64BIT_SYNC_BUILTINS): New.
1576 * config.h.in: Regenerate.
1577 * configure: Regenerate.
1578
15792010-07-06 Aldy Hernandez <aldyh@redhat.com>
1580
1581 * libitm.h (ITM_PURE): Define.
1582 Declare _ITM_malloc, _ITM_calloc, and _ITM_free.
1583
15842010-06-28 Aldy Hernandez <aldyh@redhat.com>
1585
1586 * method-wbetl.cc (class wbetl_dispatch): Add trydropreference.
1587 (validate): Add comment.
1588 (trydropreference): New.
1589 * method-readonly.cc (class readonly_dispatch): Add
1590 trydropreference.
1591 * alloc_c.cc (_ITM_dropReferences): Remove const attribute.
1592 Call trydropreference().
1593 * libitm.h (_ITM_dropReferences): Remove const attribute.
1594 * method-serial.cc (class serial_dispatch): Add trydropreference.
1595 * libitm_i.h (struct gtm_dispatch): Add trydropreference.
1596
15972010-06-28 Aldy Hernandez <aldyh@redhat.com>
1598
1599 * memcpy.cc (do_memcpy): Comment.
1600
16012010-06-25 Aldy Hernandez <aldyh@redhat.com>
1602
1603 * barrier.tpl: Add comments throughout.
1604
16052010-06-24 Aldy Hernandez <aldyh@redhat.com>
1606
1607 * method-wbetl.cc (struct w_entry): Add comments.
1608 (trycommit): Same.
1609 (rollback): Same.
1610
16112010-06-24 Aldy Hernandez <aldyh@redhat.com>
1612
1613 * alloc_c.cc (_ITM_dropReferences): New.
1614 * libitm.map (_ITM_dropReferences): Add.
1615 * libitm.h (_ITM_dropReferences): Add transaction_pure attribute.
1616 * libitm_i.h (struct gtm_transaction): Declare
1617 drop_references_allocations and drop_references_local.
1618 * local.cc (rollback_local): Ignore memory when applicable.
1619 (drop_references_local): New.
1620
16212010-06-23 Richard Henderson <rth@redhat.com>
1622
1623 * barrier.tpl, beginend.cc, clone.cc, tls.h, memcpy.cc,
1624 memset.cc, method-serial.cc: Revert the 2010-06-16 change.
1625 * config/x86/target.h (struct gtm_jmpbuf): Change CFA type to void*.
1626 * config/alpha/target.h: Likewise.
1627 * config/generic/tls.cc (gtm_mask_stack): Use it.
1628
16292010-06-23 Richard Henderson <rth@redhat.com>
1630
1631 * config/posix/cachepage.cc (gtm_cacheline_page::operator new): Use
1632 a mutex instead of trying a lock-free compare-and-swap on the list.
1633 (gtm_cacheline_page::operator delete): Likewise.
1634
16352010-06-16 Richard Henderson <rth@redhat.com>
1636
1637 * method-wbetl.cc (wbetl_dispatch::trycommit): Discard changes
1638 that overlap the libitm stack.
1639 * barrier.tpl: Mark incoming stack.
1640 * beginend.cc (_ITM_rollbackTransaction, _ITM_abortTransaction,
1641 _ITM_commitTransaction, _ITM_commitTransactionEH): Likewise.
1642 * clone.cc (_ITM_getTMCloneOrIrrevocable): Likewise.
1643 * memcpy.cc, memset.cc: Likewise.
1644 * method-serial.cc (_ITM_changeTransactionMode): Likewise.
1645 * config/generic/tls.h (gtm_thread): Add stack_top member.
1646 (gtm_stack_top, set_gtm_stack_top, struct gtm_stack_marker): New.
1647 * libitm_i.h (gtm_mask_stack): Declare.
1648 * config/generic/tls.cc: New file.
1649 * Makefile.am (libitm_la_SOURCES): Add it.
1650 (AM_CXXFLAGS): Turn off exceptions.
1651 * Makefile.in: Rebuild.
1652
16532010-06-16 Richard Henderson <rth@redhat.com>
1654
1655 * alloc.cc (struct gtm_alloc_action): Move definition ...
1656 * libitm_i.h: ... here.
1657 (class gtm_transaction): Declare new and delete.
1658 * beginend.cc (alloc_tx): Reformulate as operator new.
1659 (free_tx): Reformulate as operator delete.
1660 * config/generic/tls.h (gtm_thread): Change free_tx member to void *.
1661
16622010-06-11 Richard Henderson <rth@redhat.com>
1663
1664 * clone.cc (clone_entry_compare): Fix typo.
1665 From Patrik Marlier <patrick.marlier@unine.ch>.
1666
16672010-05-13 Richard Henderson <rth@redhat.com>
1668
1669 * alloc_c.cc (_ITM_malloc, _ITM_calloc, _ITM_free): Wrap functions
1670 in extern "C".
1671
16722010-05-07 Aldy Hernandez <aldyh@redhat.com>
1673
1674 * libitm_i.h (struct gtm_transaction): Remove
1675 get_allocation_size.
1676 (record_allocation): Remove size parameter.
1677 * libitm.map (_ITM_realloc): Remove.
1678 * alloc_c.cc (_ITM_realloc): Remove.
1679 (_ITM_malloc): Remove size argument to record_allocation.
1680 (_ITM_calloc): Same.
1681 * alloc_cpp.cc (_ZGTtnwm): Same.
1682 (_ZGTtnwmRKSt9nothrow_t): Same.
1683 (_ZGTtnam): Same.
1684 (_ZGTtnamRKSt9nothrow_t): Same.
1685 * alloc.cc (struct gtm_alloc_action): Remove size.
1686 (get_allocation_size): Remove.
1687 (commit_allocations): Add comment.
1688 (record_allocation): Remove size parameter.
1689 (forget_allocation): Remove set of size.
1690
16912010-04-19 Aldy Hernandez <aldyh@redhat.com>
1692
1693 * Makefile.am (abi_version): New.
1694 (AM_CXXFLAGS): Pass abi_version.
1695 * Makefile.in: Regenerate.
1696 * config/x86/unaligned.h: Remove always_inline kludge for vectors.
1697
16982010-04-06 Aldy Hernandez <aldyh@redhat.com>
1699
1700 * clone.cc (_ITM_getTMCloneOrIrrevocable): Rename from
1701 _ITM_getTMCloneOrIrrevokable.
1702 * libitm.h (_ITM_getTMCloneOrIrrevocable): Same.
1703 * libitm.map (_ITM_getTMCloneOrIrrevocable): Same.
1704
17052010-03-26 Aldy Hernandez <aldyh@redhat.com>
1706
1707 * configure.ac: Remove Linux futex support.
1708 * configure.tgt (config_path): Same.
1709 * Makefile.am: Same.
1710 * config/linux: Remove entire directory.
1711 * configure: Rebuild.
1712 * Makefile.in: Rebuild.
1713 * testsuite/Makefile.in: Rebuild.
1714
17152010-03-09 Aldy Hernandez <aldyh@redhat.com>
1716
1717 * retry.cc (decide_retry_strategy): Set state to STATE_SERIAL when
1718 switching to serial mode.
1719 * beginend.cc (trycommit_and_finalize): Unlock serial_lock.
1720
17212010-03-03 Aldy Hernandez <aldyh@redhat.com>
1722
1723 * configure.tgt: Add emacs -*- tags.
1724 * barrier.tpl: Same.
1725
17262010-02-23 Aldy Hernandez <aldyh@redhat.com>
1727
1728 * Makefile.am: Rename serial.cc to method-serial.cc.
1729 * Makefile.in: Regenerate with automake 1.11.1.
1730 * testsuite/Makefile.in: Same.
1731 * aclocal.m4: Regenerate with aclocal 1.11.1.
1732 * method-serial.cc: Rename from serial.cc.
1733 * libitm_i.h (struct gtm_transaction): Update comment on
1734 serialirr_mode.
1735
17362010-02-22 Aldy Hernandez <aldyh@redhat.com>
1737
1738 * libitm_i.h (GTM_longjmp): Add ITM_REGPARM.
1739 * config/linux/rwlock.h (class gtm_rwlock): Add comments.
1740
17412010-02-11 Aldy Hernandez <aldyh@redhat.com>
1742
1743 * configure: Rebuild.
1744
17452009-11-12 Richard Henderson <rth@redhat.com>
1746
1747 * Rewrite everything in C++.
1748
17492009-11-03 Richard Henderson <rth@redhat.com>
1750
1751 * config/x86/x86_sse.c, config/x86/x86_avx.c: New files.
1752 * Makefile.am (libitm_la_SOURCES): Add them.
1753 * configure.ac (ARCH_X86): New conditional.
1754 * Makefile.in, configure: Rebuild.
1755 * configure.tgt: Set up ARCH; do cflags setup at the same time.
1756 Move futex setup into "other system configury" case.
1757 * local.c (rollback_local): Merge into ...
1758 (GTM_rollback_local): ... here.
1759 (GTM_LB): Rename from GTM_alloc_local; do the memcpy here.
1760 (_ITM_LB): Define as an alias to GTM_LB.
1761
17622009-11-03 Richard Henderson <rth@redhat.com>
1763
1764 * method-readonly.c: New file.
1765 * Makefile.am (libitm_la_SOURCES): Add it.
1766 * Makefile.in: Rebuild.
1767 * beginend.c (gtm_stmlock_array, gtm_clock): New.
1768 (GTM_begin_transaction): Use dispatch_readonly for read-only txn.
1769 * libitm_i.h (gtm_stmlock, gtm_version): Move from method-wbetl.c.
1770 (GTM_VERSION_MAX, GTM_VERSION_INVALID, gtm_stmlock_owned_p,
1771 gtm_stmlock_set_owned, gtm_stmlock_get_addr,
1772 gtm_stmlock_get_version, gtm_stmlock_set_version, LOCK_ARRAY_SIZE,
1773 gtm_stmlock_array, gtm_get_stmlock, gtm_clock, RESTART_NOT_READONLY,
1774 gtm_get_clock, gtm_inc_clock): New.
1775 * method-wbetl.c (gtm_version, gtm_stmlock, OWNED_MASK, VERSION_MAX,
1776 LOCK_GET_OWNED, LOCK_SET_ADDR, LOCK_GET_ADDR, LOCK_GET_TIMESTAMP,
1777 LOCK_SET_TIMESTAMP, LOCK_ARRAY_SIZE, LOCK_MASK, LOCK_IDX, GET_LOCK,
1778 locks, gclock, CLOCK, GET_CLOCK, FETCH_AND_INC_CLOCK): Remove and
1779 replace uses with new libitm_i.h symbols.
1780 (dispatch_wbetl): Rename from wbetl_dispatch.
1781 * retry.c (GTM_decide_retry_strategy): If RESTART_NOT_READONLY, move
1782 away from dispatch_readonly; abort if the beginTransaction call
1783 asserted that the transaction was readonly.
1784
17852009-11-03 Richard Henderson <rth@redhat.com>
1786
1787 * memset.c: New file.
1788 * Makefile.am (libitm_la_SOURCES): Add it.
1789 * Makefile.in: Rebuild.
1790 * testsuite/libitm.c/memset-1.c: New.
1791
17922009-11-03 Richard Henderson <rth@redhat.com>
1793
1794 * dispatch.c: Remove file.
1795 * useraction.c (struct gtm_user_action): Move from libitm.h.
1796 * serial.c (GTM_null_read_lock, GTM_null_write_lock): New.
1797 (serial_memset, serial_memmove, serial_memcpy): Remove.
1798 (serial_W*, serial_R*): Remove.
1799 (serial_dispatch): Update to match.
1800 * configure.ac: Move Werror down below configure checks. Don't
1801 check for sys/loadavg.h, do check for malloc.h. Don't check for
1802 getloadavg and clock_gettime; do check for memalign, posix_memalign.
1803 Use GCC_AC_FUNC_MMAP_BLACKLIST
1804 * libitm.h: Split out all internal items to...
1805 * libitm_i.h: ... here. New file.
1806 * copymask.c: New file.
1807 * local.c (struct gtm_local_undo): Move from libitm.h.
1808 (GTM_alloc_local): Rename from alloc_local; export.
1809 * memcpy.c: New file.
1810 * alloc_c.c (_ITM_realloc): Use _ITM_memcpyRnWt directly.
1811 * config/posix/page.c: New file.
1812 * config/posix/target_tls.h: Remove file.
1813 * barrier.c: New file.
1814 * Makefile.am (libitm_la_SOURCES): Add barrier.c, memcpy.c,
1815 copymask.c, page.c.
1816 * alloc.c (struct gtm_alloc_action): Move from libitm.h.
1817 * method-wbetl.c: Rewrite for new cacheline methods.
1818 * Makefile.in, configure, testsuite/Makefile.in, config.h.in: Rebuild.
1819
1820 * config/alpha/sjlj.S: Fix typo.
1821 * config/alpha/target_i.h: Copy functions from alpha/target.h.
1822 * config/alpha/copymask.c: New file.
1823 * config/alpha/target.h (CACHELINE_SIZE): New.
1824 (STRICT_ALIGNMENT, PAGE_SIZE, FIXED_PAGE_SIZE): New.
1825
1826 * config/x86/target_i.h: Copy functions from x86/target.h.
1827 * config/x86/copymask.c: New file.
1828 * config/x86/target.h (_ITM_ALL_TARGET_TYPES): Remove.
1829 (CACHELINE_SIZE, STRICT_ALIGNMENT): New.
1830 (PAGE_SIZE, FIXED_PAGE_SIZE): New.
1831 * config/x86/target_tls.h: Move contents to target_i.h.
1832
1833 * testsuite/libitm.c/clone-1.c: Include libitm.h.
1834 * testsuite/libitm.c/memcpy-1.c: New.
1835
18362009-10-22 Richard Henderson <rth@redhat.com>
1837
1838 * Makefile.am (CCAS, CCASFLAGS, LTCCASCOMPILE): Remove.
1839 (AM_CCASFLAGS): New.
1840 * configure.ac: Add AM_PROG_AS. Use m4_rename_force for
1841 saving/restoring _AC_ARG_VAR_PRECIOUS.
1842 * Makefile.in, aclocal.m4, config.h.in, configure,
1843 testsuite/Makefile.in: Rebuild with automake 1.11; autoconf 2.64.
1844
18452009-10-22 Richard Henderson <rth@redhat.com>
1846
1847 * testsuite/*: Update for new compiler syntax.
1848
18492009-10-21 Richard Henderson <rth@redhat.com>
1850
1851 * libitm.h (_ITM_abortReason): Add outerAbort.
1852
18532009-08-03 Richard Henderson <rth@redhat.com>
1854
1855 * libitm.map (_ITM_commitTransactionEH, _ITM_cxa_allocate_exception,
1856 _ITM_cxa_begin_catch, _ITM_cxa_end_catch, _ITM_cxa_throw): Export.
1857 * method-wbetl.c (struct w_entry): Remove mask.
1858 (wbetl_write, wbetl_load): Return pointer to word containing the data;
1859 adjust all callers.
1860
18612009-07-22 Richard Henderson <rth@redhat.com>
1862
1863 * eh_cpp.c: New file.
1864 * Makefile.am (libitm_la_SOURCES): Add it.
1865 * Makefile.in: Rebuild.
1866 * beginend.c (GTM_rollback_transaction): Undo exception state.
1867 (GTM_trycommit_transaction): Mark inline.
1868 (GTM_trycommit_and_finalize_transaction): Split out from ...
1869 (_ITM_commitTransaction): ... here.
1870 (_ITM_commitTransactionEH): New function.
1871 * libitm.h (struct gtm_transaction): Add cxa_catch_count,
1872 cxa_unthrown, eh_in_flight; reorder.
1873
1874 * testsuite/libitm.c++/c++.exp: New.
1875 * testsuite/libitm.c++/eh-1.C: New.
1876
1877 * aatree.c (aa_free): Remove REGPARM.
1878 * aatree.h: Remove all REGPARM.
1879
18802009-07-18 Richard Henderson <rth@redhat.com>
1881
1882 * aatree.c, aatree.h, alloc.c, alloc_c.c, alloc_cpp.c: New files.
1883 * Makefile.am (libitm_la_SOURCES): Add them.
1884 * Makefile.in: Rebuild.
1885 * beginend.c (GTM_rollback_transaction): Use GTM_commit_allocations.
1886 (GTM_trycommit_transaction): Likewise.
1887 * libitm.h: Include aatree.h
1888 (struct gtm_alloc_action): New.
1889 (struct gtm_transaction): Add alloc_actions.
1890 (GTM_record_allocation, GTM_forget_allocation): Declare.
1891 (GTM_get_allocation_size, GTM_commit_allocations): Declare.
1892 * libitm.map (_ITM_malloc, _ITM_calloc, _ITM_realloc, _ITM_free,
1893 _ZGTtnwm, _ZGTtnam, _ZGTtdlPv, _ZGTtdaPv, _ZGTtnwmRKSt9nothrow_t,
1894 _ZGTtnamRKSt9nothrow_t, _ZGTtdlPvRKSt9nothrow_t,
1895 _ZGTtdaPvRKSt9nothrow_t): Export.
1896
18972009-07-18 Richard Henderson <rth@redhat.com>
1898
1899 * target_tls.h: Move ...
1900 * config/posix/target_tls.h: ... here.
1901
19022009-07-07 Richard Henderson <rth@redhat.com>
1903
1904 * config/x86/target.h (atomic_write_barrier): Use sfence if available.
1905
19062009-07-07 Richard Henderson <rth@redhat.com>
1907
1908 * Update to GPL3.
1909
19102009-07-07 Richard Henderson <rth@redhat.com>
1911
1912 * libitm.h (struct gtm_transaction): Widen id to _ITM_transactionId_t.
1913 * beginend.c (global_tid): Widen to _ITM_transactionId_t.
1914
1915 * configure.tgt: Don't use -ftls-model for x86 linux.
1916 * libitm.h: Include target.h after standard includes.
1917 (_gtm_thr): Rename from gtm_thr.
1918 (setup_gtm_thr, gtm_thr, gtm_tx, set_gtm_tx): New.
1919 (gtm_disp, set_gtm_disp): New.
1920 * beginend.c, dispatch.c, local.c, method-wbetl.c, query.c,
1921 retry.c, serial.c, useraction.c: Use accessor functions throughout.
1922 * config/alpha/target_tls.h, config/x86/target_tls.h: New files.
1923
19242009-07-07 Richard Henderson <rth@redhat.com>
1925
1926 * config/linux/rwlock.c (EZ): New define. Use it throughout.
1927
19282009-07-06 Richard Henderson <rth@redhat.com>
1929
1930 * libitm.h (_ITM_SRCLOCATION_DECL_1, _ITM_SRCLOCATION_DECL_2): Remove.
1931 (_ITM_SRCLOCATION_DEFN_1, _ITM_SRCLOCATION_DEFN_2): Remove.
1932 (_ITM_beginTransaction): Take variadic arguments.
1933 (_ITM_registerThrownObject): Declare.
1934 * beginend.c, serial.c: Update.
1935 * libitm.map: Add _ITM_registerThrownObject.
1936
19372009-01-28 Richard Henderson <rth@redhat.com>
1938
1939 * Makefile.am (libitm_la_SOURCES): Add clone.c.
1940 * Makefile.in: Rebuild.
1941 * beginend.c (_ITM_abortTransaction): Abort if irrevokable.
1942 (GTM_restart_transaction): Fix uninstrumented code check.
1943 * retry.c (GTM_decide_retry_strategy): Add serial check.
1944 * serial.c (GTM_serialmode): Add irrevokable variable. Don't
1945 automatically go irrevokable when in serial mode.
1946 * clone.c: New file.
1947 * libitm.h, libitm.map: Update.
1948
19492009-01-27 Richard Henderson <rth@redhat.com>
1950
1951 * Makefile.am (LTCCASCOMPILE): Define.
1952 (libitm_la_SOURCES): Add methid-wbetl.c.
1953 * testsuite/Makefile.am: New
1954 * configure.ac: Add testsuite/Makefile.
1955 * Makefile.in, testsuite/Makefile.in, configure: Regenerate.
1956 * beginend.c (GTM_begin_transaction): Install wbetl_dispatch.
1957 (_ITM_abortTransaction): Finalize implementation method; pass
1958 transaction properties to longjmp.
1959 (GTM_restart_transaction): Split out from ...
1960 (_ITM_commitTransaction): ... here.
1961 * config/linux/x86/futex_bits.h (cpu_relax, atomic_write_barrier):
1962 Move to config/x86/target.h.
1963 * config/linux/alpha/futex_bits.h: New.
1964 * config/x86/sjlj.S (GTM_longjmp): Fix 64-bit input register.
1965 * config/x86/target.h: Disable target types for 32-bit.
1966 * config/alpha/sjlj.S, config/alpha/target.h: New.
1967 * libitm.h (struct gtm_dispatch): Add init, fini.
1968 (enum restart_reason): New.
1969 (struct gtm_transaction): Add method and restarts.
1970 * retry.c (GTM_decide_retry_strategy): Implement.
1971 * serial.c (serial_init, serial_fini): New.
1972 (GTM_serialmode): Finialize outgoing method.
1973 * method-wbetl.c: New.
1974
19752008-12-09 Richard Henderson <rth@redhat.com>
1976
1977 * config/x86/target.h (_ITM_ALL_TARGET_TYPES, _ITM_TYPE_ATTR): New.
1978 * configure.tgt (i386-*, x86_64-*): Don't force SSE.
1979 * dispatch.c (_ITM_##R##T, _ITM_##W##T): Use _ITM_TYPE_ATTR.
1980 * libitm.h (_ITM_ALL_TARGET_TYPES, _ITM_TYPE_ATTR): Provide default.
1981 (_ITM_TYPE_M64, _ITM_TYPE_M128, _ITM_TYPE_M256): Move to x86 header.
1982 (_ITM_ALL_TYPES): Use _ITM_ALL_TARGET_TYPES.
1983 * local.c (_ITM_L##T): Use _ITM_TYPE_ATTR.
1984 * serial.c (serial_R##T, serial_W##T): Likewise.
1985
19862008-11-21 Richard Henderson <rth@redhat.com>
1987
1988 * Initial commit.
21fa2a29
JJ
1989\f
1990Copyright (C) 2008-2016 Free Software Foundation, Inc.
1991
1992Copying and distribution of this file, with or without modification,
1993are permitted in any medium without royalty provided the copyright
1994notice and this notice are preserved.