]> git.ipfire.org Git - thirdparty/gcc.git/blob - libitm/ChangeLog
Update copyright years.
[thirdparty/gcc.git] / libitm / ChangeLog
1 2019-01-01 Jakub Jelinek <jakub@redhat.com>
2
3 Update copyright years.
4
5 2019-01-01 Jakub Jelinek <jakub@redhat.com>
6
7 * libitm.texi: Bump @copying's copyright year.
8
9 2018-12-16 Jakub Jelinek <jakub@redhat.com>
10
11 PR c++/88482
12 * eh_cpp.cc (__cxa_throw): Change DEST argument type from
13 void * to void (*) (void *).
14 (_ITM_cxa_throw): Likewise.
15 * libitm.h (_ITM_cxa_throw): Likewise.
16 * libitm.texi (_ITM_cxa_throw): Likewise.
17
18 2018-12-13 Peter Bergner <bergner@linux.ibm.com>
19
20 * config/powerpc/target.h (htm_available): Add support for
21 PPC_FEATURE2_HTM_NO_SUSPEND. Use __builtin_cpu_supports if available.
22
23 2018-10-31 Joseph Myers <joseph@codesourcery.com>
24
25 PR bootstrap/82856
26 * Makefile.am: Include multilib.am.
27 (AUTOMAKE_OPTIONS): Add info-in-builddir.
28 (CLEANFILES): Remove libitm.info.
29 * configure.ac: Remove AC_PREREQ.
30 * testsuite/Makefile.am (RUNTEST): Remove quotes.
31 * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
32 Regenerate.
33
34 2018-10-30 Nicholas Krause <xerofoify@gmail.com>
35
36 PR libitm/86293
37 * method-serial.cc: Mark varible as potentially unused
38 to silence warning.
39
40 2018-08-03 Sergei Trofimovich <slyfox@gentoo.org>
41
42 * config/sh/sjlj.S: Adjust to use PIC vs normal code to avoid
43 absolute relocation in a shared library.
44
45 2018-06-12 H.J. Lu <hongjiu.lu@intel.com>
46
47 PR libitm/85988
48 * config/linux/x86/tls.h (SEG_READ): Use the offset of
49 __private_tm as base.
50 (SEG_WRITE): Likewise.
51 (SEG_ENCODE_WRITE): Correct the offset of pointer_guard for x32.
52 (gtm_thr): Replace SEG_READ(10) with SEG_READ(0).
53 (set_gtm_thr): Replace SEG_WRITE(10) with SEG_WRITE(0).
54 (abi_disp): Replace SEG_DECODE_READ(11) with SEG_DECODE_READ(1).
55 (set_abi_disp): Replace SEG_ENCODE_WRITE(11) with
56
57 2018-05-17 Jason Merrill <jason@redhat.com>
58
59 * beginend.cc (save): Disable -Werror=deprecated-copy.
60
61 2018-05-02 Tom de Vries <tom@codesourcery.com>
62
63 PR testsuite/85106
64 * testsuite/lib/libitm.exp: Include scanltranstree.exp.
65
66 2018-05-02 Tom de Vries <tom@codesourcery.com>
67
68 PR testsuite/85106
69 * testsuite/lib/libitm.exp: Include scanwpaipa.exp.
70
71 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
72
73 * config/x86/sjlj.S (_ITM_beginTransaction): Add
74 (__CET__ & 2) != 0 check for shadow stack.
75 (GTM_longjmp): Likewise.
76
77 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
78
79 * configure: Regenerated.
80
81 2018-04-23 H.J. Lu <hongjiu.lu@intel.com>
82
83 PR target/85489
84 * config/x86/sjlj.S (GTM_longjmp): Replace jle/jg with jbe/ja.
85
86 2018-04-19 Jakub Jelinek <jakub@redhat.com>
87
88 * configure: Regenerated.
89
90 2018-04-18 David Malcolm <dmalcolm@redhat.com>
91
92 PR jit/85384
93 * configure: Regenerate.
94
95 2018-02-14 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
96
97 PR target/84148
98 * configure: Regenerate.
99
100 2018-01-03 Jakub Jelinek <jakub@redhat.com>
101
102 Update copyright years.
103
104 * libitm.texi: Bump @copying's copyright year.
105
106 2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
107
108 * Makefile.in: Regenerate.
109 * acinclude.m4: Add enable.m4 and cet.m4.
110 * config/x86/sjlj.S: Include cet.h.
111 (_ITM_beginTransaction): Add _CET_ENDBR.
112 Save Shadow Stack pointer.
113 (GTM_longjmp): Add _CET_ENDBR. Restore Shadow Stack pointer.
114 * config/x86/target.h (struct gtm_jmpbuf):
115 Add new field for Shadow Stack pointer.
116 * configure: Regenerate.
117 * configure.ac: Set CET_FLAGS. Update XCFLAGS.
118 * configure.ac: Update libtool_VERSION for x86.
119 * testsuite/Makefile.in: Regenerate.
120
121 2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
122
123 * libitm/config/x86/target.h: Add new field (ssp).
124 * libitm/config/x86/sjlj.S: Change offsets.
125
126 2017-05-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
127
128 * testsuite/lib/libitm.exp: Load scanlang.exp.
129
130 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
131
132 * libitm_i.h (sutrct gtm_thread): Fix typo in comment.
133
134 2017-01-21 Jakub Jelinek <jakub@redhat.com>
135
136 PR other/79046
137 * testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
138 of cat to get version from BASE-VER file.
139 * testsuite/Makefile.in: Regenerated.
140
141 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
142
143 * config/x86/target.h (htm_available): Determine vendor from
144 __get_cpuid_max return. Use signature_INTEL_ebx. Cleanup.
145
146 2017-01-18 Torvald Riegel <triegel@redhat.com>
147
148 * config/x86/target.h (htm_available): Add check for some processors
149 on which TSX is broken.
150
151 2017-01-17 Jakub Jelinek <jakub@redhat.com>
152
153 PR other/79046
154 * configure.ac: Add GCC_BASE_VER.
155 * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
156 get version from BASE-VER file.
157 * testsuite/Makefile.in: Regenerated.
158 * configure: Regenerated.
159 * Makefile.in: Regenerated.
160
161 2017-01-04 Alan Modra <amodra@gmail.com>
162
163 * Makefile.in: Regenerate.
164 * testsuite/Makefile.in: Regenerate.
165
166 2017-01-01 Jakub Jelinek <jakub@redhat.com>
167
168 Update copyright years.
169
170 * libitm.texi: Bump @copying's copyright year.
171
172 2016-12-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
173
174 * acinclude.m4 (LIBITM_CHECK_LINKER_FEATURES): Remove.
175 * aclocal.m4: Regenerate.
176 * configure.ac: Call GCC_CHECK_LINKER_HWCAP instead of
177 LIBITM_CHECK_LINKER_HWCAP.
178
179 2016-11-15 Matthias Klose <doko@ubuntu.com>
180
181 * configure: Regenerate.
182
183 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
184
185 PR libitm/70456
186 * util.cc (xmalloc): Use posix_memalign to allocate memory on
187 on cache line if requested.
188
189 2016-03-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
190
191 * config/s390/target.h (TARGET_BEGIN_TRANSACTION_ATTRIBUTE): Define
192 function attribute to disable floating point in begin_transaction() on
193 S/390.
194 * beginend.cc (begin_transaction): Use
195 TARGET_BEGIN_TRANSACTION_ATTRIBUTE.
196
197 2016-01-22 Torvald Riegel <triegel@redhat.com>
198
199 * beginend.cc (GTM::gtm_thread::serial_lock): Put on cacheline
200 boundary.
201 (htm_fastpath): Remove.
202 (gtm_thread::begin_transaction): Fix HTM fastpath.
203 (_ITM_commitTransaction): Adapt.
204 (_ITM_commitTransactionEH): Adapt.
205 * libitm/config/linux/rwlock.h (gtm_rwlock): Add htm_fastpath member
206 and accessors.
207 * libitm/config/posix/rwlock.h (gtm_rwlock): Likewise.
208 * libitm/config/posix/rwlock.cc (gtm_rwlock::gtm_rwlock): Adapt.
209 * libitm/config/x86/sjlj.S (_ITM_beginTransaction): Fix HTM fastpath.
210 * libitm/libitm_i.h (htm_fastpath): Remove declaration.
211 * libitm/method-serial.cc (htm_mg): Adapt.
212 (gtm_thread::serialirr_mode): Adapt.
213 * libitm/query.cc (_ITM_inTransaction, _ITM_getTransactionId): Adapt.
214
215 2016-01-21 Torvald Riegel <triegel@redhat.com>
216
217 * testsuite/libitm.c++/libstdc++-safeexc.C: Not supported on darwin
218 or AIX.
219
220 2016-01-19 Richard Henderson <rth@redhat.com>
221
222 PR bootstrap/69343
223 PR bootstrap/69339
224 Revert:
225 2016-01-13 Richard Henderson <rth@redhat.com>
226
227 * Makefile.am (libitm_la_SOURCES) [ARCH_AARCH64]: Add vect128.cc
228 (libitm_la_SOURCES) [ARCH_ARM]: Add neon.cc
229 (libitm_la_SOURCES) [ARCH_PPC]: Add vect128.cc
230 (libitm_la_SOURCES) [ARCH_S390]: Add vect128.cc
231 * configure.ac (ARCH_AARCH64): New conditional.
232 (ARCH_PPC, ARCH_S390): Likewise.
233 * Makefile.in, configure: Rebuild.
234
235 * libitm.h (_ITM_TYPE_M128): Always define.
236 * vect64.cc: Split ...
237 * vect128.cc: ... out of...
238 * config/x86/x86_sse.cc: ... here.
239 * config/arm/neon.cc: New file.
240
241 2016-01-19 Torvald Riegel <triegel@redhat.com>
242
243 * local_type_traits: Remove file.
244 * libitm_i.h: Don't include it anymore.
245 (sized_integral): Remove.
246
247 2016-01-16 Torvald Riegel <triegel@redhat.com>
248
249 * method-gl.cc (gl_wt_dispatch::trycommit): Ensure proxy privatization
250 safety.
251 * method-ml.cc (ml_wt_dispatch::trycommit): Likewise.
252 * libitm/testsuite/libitm.c/priv-1.c: New.
253
254 2015-01-15 Torvald Riegel <triegel@redhat.com>
255
256 testsuite/libitm.c++/libstdc++-safeexc.C: New.
257
258 2016-01-13 Torvald Riegel <triegel@redhat.com>
259
260 * beginend.cc (gtm_thread::trycommit): Fix seq_cst fences.
261 * config/linux/rwlock.cc (gtm_rwlock::write_lock_generic): Likewise.
262 (gtm_rwlock::write_unlock): Likewise.
263
264 2016-01-13 Richard Henderson <rth@redhat.com>
265
266 * Makefile.am (libitm_la_SOURCES) [ARCH_AARCH64]: Add vect128.cc
267 (libitm_la_SOURCES) [ARCH_ARM]: Add neon.cc
268 (libitm_la_SOURCES) [ARCH_PPC]: Add vect128.cc
269 (libitm_la_SOURCES) [ARCH_S390]: Add vect128.cc
270 * configure.ac (ARCH_AARCH64): New conditional.
271 (ARCH_PPC, ARCH_S390): Likewise.
272 * Makefile.in, configure: Rebuild.
273
274 * libitm.h (_ITM_TYPE_M128): Always define.
275 * vect64.cc: Split ...
276 * vect128.cc: ... out of...
277 * config/x86/x86_sse.cc: ... here.
278 * config/arm/neon.cc: New file.
279
280 2016-01-13 Torvald Riegel <triegel@redhat.com>
281
282 * beginend.cc (gtm_thread::trycommit): Fix privatization safety.
283 * config/linux/rwlock.cc (gtm_rwlock::write_lock_generic): Likewise.
284 * config/posix/rwlock.cc (gtm_rwlock::write_lock_generic): Likewise.
285 * dispatch.h (abi_dispatch::snapshot_most_recent): New.
286 * method-gl.cc (gl_wt_dispatch::snapshot_most_recent): New.
287 * method-ml.cc (ml_wt_dispatch::snapshot_most_recent): New.
288 * method-serial.cc (serial_dispatch::snapshot_most_recent): New.
289 (serialirr_dispatch::snapshot_most_recent): New.
290 (serialirr_onwrite_dispatch::snapshot_most_recent): New.
291
292 2016-01-12 Torvald Riegel <triegel@redhat.com>
293
294 * libitm_i.h (gtm_mask_stack): Remove.
295 * beginend.cc (gtm_stmlock_array, gtm_clock): Likewise.
296 * stmlock.h: Remove file.
297 * config/alpha/cacheline.h: Likewise.
298 * config/generic/cacheline.h: Likewise.
299 * config/powerpc/cacheline.h: Likewise.
300 * config/sparc/cacheline.h: Likewise.
301 * config/x86/cacheline.h: Likewise.
302
303 2016-01-04 Jakub Jelinek <jakub@redhat.com>
304
305 Update copyright years.
306
307 * libitm.texi: Bump @copying's copyright year.
308
309 2015-11-26 Torvald Riegel <triegel@redhat.com>
310
311 * method-ml.cc (ml_mg): Use multiplicative instead of simple hashing.
312 (ml_wt_dispatch::pre_write): Adapt.
313 (ml_wt_dispatch::pre_load): Likewise.
314
315 2015-11-22 Torvald Riegel <triegel@redhat.com>
316
317 * libitm_i.h (gtm_alloc_action): Remove union.
318 * testsuite/libitm.c/alloc-1.c: New.
319
320 2015-11-19 Torvald Riegel <triegel@redhat.com>
321
322 * testsuite/libitm.c++/eh-5.C: New.
323 * libitm.h (_ITM_cxa_free_exception): New.
324 * libitm.map (_ITM_cxa_free_exception): Add it.
325 * libitm.texi: Update ABI docs.
326 * libitm_i.h (gtm_transaction_cp::cxa_unthrown): Remove.
327 (gtm_transaction_cp::cxa_uncaught_count): Add.
328 (gtm_thread::cxa_unthrown): Remove.
329 (gtm_thread::cxa_uncaught_count_ptr): Add.
330 (gtm_thread::cxa_uncaught_count): Add.
331 (gtm_thread::drop_references_allocations): Rename to...
332 (gtm_thread::discard_allocation): ... this and adapt.
333 (gtm_thread::init_cpp_exceptions): New.
334 * beginend.cc (gtm_thread::gtm_thread): Adapt EH handling.
335 (gtm_thread::begin_transaction): Likewise.
336 (gtm_transaction_cp::save): Likewise.
337 (gtm_thread::trycommit): Likewise.
338 * eh_cpp.cc: Add overview comments.
339 (__cxa_eh_globals, __cxa_get_globals, __cxa_free_exception): Declare.
340 (free_any_exception, _ITM_cxa_free_exception): New.
341 (gtm_thread::init_cpp_exceptions): Define.
342 (_ITM_cxa_allocate_exception, _ITM_cxa_throw): Adapt.
343 (_ITM_cxa_begin_catch, _ITM_cxa_end_catch): Likewise.
344 (gtm_thread::revert_cpp_exceptions): Likewise.
345
346 2015-11-09 Torvald Riegel <triegel@redhat.com>
347
348 * alloc_cpp.cc (_ZdlPvX, _ZdlPvXRKSt9nothrow_t, _ZGTtdlPvX,
349 _ZGTtdlPvXRKSt9nothrow_t, delsz_opnt): New.
350 * libitm.map: Add _ZGTtdlPvX and _ZGTtdlPvXRKSt9nothrow_t.
351 * libitm_i.h (gtm_alloc_action): Add free_fn_sz and sz. Add comments.
352 (gtm_thread::forget_allocations): New overload with size_t argument.
353 * alloc.c (gtm_thread::forget_allocation): Define new overload and
354 adapt existing one.
355 (gtm_thread::record_allocation): Adapt.
356 (gtm_thread::commit_allocations_1): Adapt.
357 (gtm_thread::commit_allocations_2): Adapt.
358 * testsuite/libitm.c++/newdelete.C: New.
359
360 2015-10-27 Daniel Jacobowitz <dan@codesourcery.com>
361 Joseph Myers <joseph@codesourcery.com>
362 Mark Shinwell <shinwell@codesourcery.com>
363 Andrew Stubbs <ams@codesourcery.com>
364 Rich Felker <dalias@libc.org>
365
366 * config/sh/sjlj.S (_ITM_beginTransaction): Bypass PLT calling
367 GTM_begin_transaction for compatibility with FDPIC.
368
369 2015-10-09 David Malcolm <dmalcolm@redhat.com>
370
371 * testsuite/lib/libitm.exp: Load multiline.exp before prune.exp,
372 using load_gcc_lib.
373
374 2015-08-20 Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org> (tiny change)
375
376 PR libitm/61164
377 * local_atomic (__always_inline): Rename to...
378 (__libitm_always_inline): ... this.
379
380 2015-07-03 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
381
382 PR target/52482
383 * config/powerpc/sjlj.S: Port to Xcode 2.5.
384
385 2015-05-27 Uros Bizjak <ubizjak@gmail.com>
386
387 * config/linux/x86/futex_bits.h (sys_futex0) [__x86_64__]: Change
388 operands "op" and "val" to int.
389
390 2015-05-27 Uros Bizjak <ubizjak@gmail.com>
391
392 * config/linux/sh/futex_bits.h (sys_futex0) Change operands
393 "op" and "val" to int.
394
395 2015-05-27 Uros Bizjak <ubizjak@gmail.com>
396
397 * config/linux/alpha/futex_bits.h (sys_futex0) Change operands
398 "op" and "val" to int.
399
400 2015-05-27 Uros Bizjak <ubizjak@gmail.com>
401
402 * config/linux/futex.cc (gtm_futex_wait, gtm_futex_wake):
403 Declare as static int.
404 (FUTEX_PRIVATE_FLAG): Remove L suffix.
405 * config/linux/futex_bits.h (sys_futex0) Change operand "op" to int.
406
407 2015-05-27 Uros Bizjak <ubizjak@gmail.com>
408
409 * config/linux/x86/futex_bits.h (sys_futex0) [__PIC__]: Remove
410 sys_futex0 function.
411
412 2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
413
414 * Makefile.in: Regenerated with automake-1.11.6.
415 * aclocal.m4: Likewise.
416 * configure: Likewise.
417 * testsuite/Makefile.in: Likewise.
418
419 2015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
420
421 * config/arm/hwcap.cc: Use fcntl.h instead of sys/fcntl.h.
422 * config/linux/x86/tls.h: Only use __GLIBC_PREREQ if defined.
423
424 2015-01-15 H.J. Lu <hongjiu.lu@intel.com>
425
426 PR libitm/64360
427 * libitm.c/stackundo.c (test2): Make it static.
428 (test1): Likewise.
429
430 2015-01-05 Jakub Jelinek <jakub@redhat.com>
431
432 Update copyright years.
433
434 2015-01-05 Jakub Jelinek <jakub@redhat.com>
435
436 * libitm.texi: Bump @copying's copyright year.
437
438 2014-12-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
439
440 * testsuite/lib/libitm.exp: Load target-utils.exp.
441 Move load of target-supports.exp earlier.
442
443 2014-12-03 Uros Bizjak <ubizjak@gmail.com>
444
445 * configure.tgt (x86_64): Tune -m32 multilib to generic.
446
447 2014-11-21 H.J. Lu <hongjiu.lu@intel.com>
448
449 PR bootstrap/63784
450 * configure: Regenerated.
451
452 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
453
454 PR target/63610
455 * configure: Regenerate.
456
457 2014-10-06 Marek Polacek <polacek@redhat.com>
458
459 * testsuite/libitm.c/memcpy-1.c: Declare getpagesize.
460 * testsuite/libitm.c/memset-1.c: Likewise.
461
462 2014-07-24 Richard Henderson <rth@redhat.com>
463
464 * config/aarch64/sjlj.S (_ITM_beginTransaction): Use post-inc
465 addressing mode in epilogue.
466
467 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
468
469 * acinclude.m4 (LIBITM_CHECK_LINKER_HWCAP): Check for
470 -mclear-hwcap instead.
471 * configure: Regenerate.
472 * clearcap.map: Remove.
473
474 2014-05-21 John Marino <gnugcc@marino.st>
475
476 * configure.tgt (*-*-dragonfly*): New target.
477
478 2014-05-19 Richard Henderson <rth@redhat.com>
479
480 * config/aarch64/sjlj.S: New file.
481 * config/aarch64/target.h: New file.
482 * configure.tgt: Enable aarch64.
483
484 2014-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
485
486 * config/generic/asmcfi.h: Also check for
487 __GCC_HAVE_DWARF2_CFI_ASM.
488
489 2013-04-02 Richard Henderson <rth@redhat.com>
490
491 * config/alpha/target.h (PAGE_SIZE, FIXED_PAGE_SIZE): Remove.
492 * config/arm/target.h, config/sh/target.h: Likewise.
493 * config/sparc/target.h, config/x86/target.h: Likewise.
494
495 2014-03-26 Jakub Jelinek <jakub@redhat.com>
496
497 * config/linux/futex_bits.h: Include errno.h.
498 (sys_futex0): If syscall returns -1, return -errno rather than
499 -1.
500
501 2014-03-26 Joseph Myers <joseph@codesourcery.com>
502
503 * libitm.texi (Index): Rename to Library Index.
504
505 2014-01-13 H.J. Lu <hongjiu.lu@intel.com>
506
507 PR libitm/53113
508 * Makefile.am (x86_sse.lo): Append -msse to CXXFLAGS.
509 (x86_avx.lo): Append -mavx to CXXFLAGS.
510 * Makefile.in: Regenerate.
511
512 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
513
514 Update copyright years
515
516 2014-01-02 Tobias Burnus <burnus@net-b.de>
517
518 * libitm.texi: Bump @copying's copyright year.
519
520 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
521
522 * config/powerpc/sjlj.S [__powerpc64__ && _CALL_ELF == 2]:
523 (FUNC): Define ELFv2 variant.
524 (END): Likewise.
525 (HIDDEN): Likewise.
526 (CALL): Likewise.
527 (BASE): Likewise.
528 (LR_SAVE): Likewise.
529
530 2013-09-20 Alan Modra <amodra@gmail.com>
531
532 * configure: Regenerate.
533
534 2013-08-30 Torvald Riegel <triegel@redhat.com>
535
536 * config/posix/rwlock.cc: Fix initialization order.
537
538 2013-08-30 Torvald Riegel <triegel@redhat.com>
539
540 * libitm_i.h (gtm_thread): Assign an asm name to serial_lock.
541 (htm_fastpath): Assign an asm name.
542 * libitm.h (_ITM_codeProperties): Add non-ABI flags used by custom
543 HTM fast paths.
544 (_ITM_actions): Likewise.
545 * config/x86/target.h (HTM_CUSTOM_FASTPATH): Enable custom fastpath on
546 x86_64.
547 * config/x86/sjlj.S (_ITM_beginTransaction): Add custom HTM fast path.
548 * config/posix/rwlock.h (gtm_rwlock): Update comments. Move summary
549 field to the start of the structure.
550 * config/linux/rwlock.h (gtm_rwlock): Update comments.
551 * beginend.cc (gtm_thread::begin_transaction): Add retry policy
552 handling for custom HTM fast paths.
553
554 2013-08-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
555 Revert:
556 2013-08-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
557
558 * configure.tgt: Add -msoft-float to XCFLAGS.
559
560 2013-08-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
561
562 * configure.tgt: Add -msoft-float to XCFLAGS.
563
564 2013-07-29 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
565
566 * config/s390/target.h (htm_begin, htm_commit, htm_abort)
567 (htm_transaction_active): Enable zEC12 instructions in the
568 assembler.
569 * configure.tgt: Remove -Wa,-march=zEC12 from XCFLAGS.
570
571 2013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
572
573 * acinclude.m4: Add htm asm check for s390.
574 * configure.tgt: Add -mhtm and -Wa,-march=zEC12 to the options.
575 * configure: Regenerate.
576 * config/s390/target.h: Remove __HTM__ check.
577 (htm_available): Call getauxval to get hwcaps and check whether
578 HTM is available or not.
579
580 2013-07-15 Peter Bergner <bergner@vnet.ibm.com>
581
582 * acinclude.m4 (LIBITM_CHECK_AS_HTM): New.
583 * configure.ac: Use it.
584 (AC_CHECK_HEADERS): Check for sys/auxv.h.
585 (AC_CHECK_FUNCS): Check for getauxval.
586 * config.h.in, configure: Rebuild.
587 * configure.tgt (target_cpu): Add -mhtm to XCFLAGS.
588 * config/powerpc/target.h: Include sys/auxv.h and htmintrin.h.
589 (USE_HTM_FASTPATH): Define.
590 (_TBEGIN_STARTED, _TBEGIN_INDETERMINATE, _TBEGIN_PERSISTENT,
591 _HTM_RETRIES) New macros.
592 (htm_abort, htm_abort_should_retry, htm_available, htm_begin, htm_init,
593 htm_begin_success, htm_commit, htm_transaction_active): New functions.
594
595 2013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
596
597 * config/s390/target.h: Include htmintrin.h.
598 (_HTM_ITM_RETRIES): New macro definition.
599 (htm_available, htm_init, htm_begin, htm_begin_success)
600 (htm_commit, htm_abort, htm_abort_should_retry): New functions.
601
602 2013-06-20 Iain Sandoe <iain@codesourcery.com>
603 Cesar Philippidis <cesar@codesourcery.com>
604
605 * testsuite/lib/libitm.exp: Reorder lib loads into dependency order.
606 Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
607 * testsuite/libitm.c/c.exp: load_gcc_lib gcc-dg.exp.
608 * testsuite/libitm.c++/c++.exp: load_gcc_lib gcc-dg.exp.
609
610 2013-06-20 Torvald Riegel <triegel@redhat.com>
611
612 * query.cc (_ITM_inTransaction): Abort when using the HTM fastpath.
613 (_ITM_getTransactionId): Same.
614 * config/x86/target.h (htm_transaction_active): New.
615
616 2013-06-20 Torvald Riegel <triegel@redhat.com>
617
618 PR libitm/57643
619 * beginend.cc (gtm_thread::begin_transaction): Handle reentrancy in
620 the HTM fastpath.
621
622 2013-03-31 Gerald Pfeifer <gerald@pfeifer.com>
623
624 PR bootstrap/56714
625 * local_atomic (__always_inline): Always define our version.
626 (__calculate_memory_order): Mark inline.
627 (atomic_thread_fence): Ditto.
628 (atomic_signal_fence): Ditto.
629 (atomic_bool::atomic_flag_test_and_set_explicit): Ditto.
630 (atomic_bool::atomic_flag_clear_explicit): Ditto.
631 (atomic_bool::atomic_flag_test_and_set): Ditto.
632 (atomic_bool::atomic_flag_clear): Ditto.
633
634 2013-04-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
635
636 * config/s390/sjlj.S: New file.
637 * config/s390/target.h: New file.
638 * configure.tgt: Set options for S/390.
639
640 2013-03-23 Andi Kleen <ak@linux.intel.com>
641
642 * local_atomic (__always_inline): Add.
643 (__calculate_memory_order, atomic_thread_fence,
644 atomic_signal_fence, test_and_set, clear, store, load,
645 exchange, compare_exchange_weak, compare_exchange_strong,
646 fetch_add, fetch_sub, fetch_and, fetch_or, fetch_xor):
647 Add __always_inline to force inlining.
648
649 2013-02-11 Iain Sandoe <iain@codesourcery.com>
650 Jack Howarth <howarth@bromo.med.uc.edu>
651 Patrick Marlier <patrick.marlier@gmail.com>
652
653 PR libitm/55693
654 * alloc_cpp.cc: Enable function declarations on darwin.
655 * eh_cpp.cc: Likewise.
656
657 2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
658
659 Update copyright years.
660
661 2012-11-09 Torvald Riegel <triegel@redhat.com>
662
663 * beginend.cc (htm_fastpath): New.
664 (gtm_thread::begin_transaction, _ITM_commitTransaction,
665 _ITM_commitTransactionEH): Add HTM fastpath handling.
666 * config/linux/rwlock.h (gtm_rwlock.is_write_locked): New.
667 * config/posix/rwlock.h (gtm_rwlock.is_write_locked): New.
668 * config/x86/target.h (htm_available, htm_init, htm_begin_success,
669 htm_begin, htm_commit, htm_abort, htm_abort_should_retry): New.
670 * configure.tgt: Add -mrtm to XCFLAGS.
671 * method-serial.cc (htm_mg, o_htm_mg, htm_dispatch, dispatch_htm): New.
672 (gtm_thread::serialirr_mode): Add HTM fastpath handling.
673 * libitm_i.h (htm_fastpath, dispatch_htm): Declare.
674 * retry.cc (parse_default_method): Add HTM method parsing.
675 (gtm_thread::number_of_threads_changed): Use HTM by default if
676 available.
677
678 2012-11-04 Thomas Schwinge <thomas@codesourcery.com>
679
680 * configure: Regenerate.
681
682 2012-10-31 Richard Henderson <rth@redhat.com>
683
684 * acinclude.m4 (LIBITM_CHECK_AS_RTM): New.
685 * configure.ac: Use it.
686 * config.h.in, configure: Rebuild.
687 * testsuite/Makefile.in: Rebuild.
688
689 2012-10-24 Torvald Riegel <triegel@redhat.com>
690
691 * libitm.texi: Clarify ABI requirements for data-logging functions.
692
693 2012-10-24 Torvald Riegel <triegel@redhat.com>
694
695 * retry.cc (gtm_thread::decide_begin_dispatch): Ask dispatch whether
696 it requires serial mode instead of assuming that for certain
697 dispatchs.
698 * dispatch.h (abi_dispatch::requires_serial): New.
699 (abi_dispatch::abi_dispatch): Adapt.
700 * method-gl.cc (gl_wt_dispatch::gl_wt_dispatch): Adapt.
701 * method-ml.cc (ml_wt_dispatch::ml_wt_dispatch): Same.
702 * method-serial.cc (serialirr_dispatch::serialirr_dispatch,
703 serial_dispatch::serial_dispatch,
704 serialirr_onwrite_dispatch::serialirr_onwrite_dispatch): Same.
705
706 2012-10-02 Uros Bizjak <ubizjak@gmail.com>
707
708 * config/x86/target.h (struct gtm_jmpbuf): Merge x86_64
709 and ia32 declarations some more.
710 * config/x86/sjlj.S (_ITM_beginTransaction): Move ret to common code.
711
712 2012-09-20 Jakub Jelinek <jakub@redhat.com>
713
714 PR other/43620
715 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
716 * configure: Regenerate.
717 * Makefile.in: Regenerate.
718
719 2012-09-14 David Edelsohn <dje.gcc@gmail.com>
720
721 * configure: Regenerated.
722
723 2012-07-31 Uros Bizjak <ubizjak@gmail.com>
724
725 * config/x86/target.h (cpu_relax): Use __builtin_ia32_pause.
726
727 2012-05-21 Patrick Marlier <patrick.marlier@gmail.com>
728
729 * eh_cpp.cc: Fix __cxa_end_catch declaration.
730
731 2012-05-16 H.J. Lu <hongjiu.lu@intel.com>
732
733 * configure: Regenerated.
734
735 2012-04-04 H.J. Lu <hongjiu.lu@intel.com>
736
737 PR libitm/52854
738 * config/x86/target.h (gtm_jmpbuf): Replace long with long long
739 for x86-64.
740
741 2012-04-03 Tristan Gingold <gingold@adacore.com>
742
743 * configure: Regenerate.
744
745 2012-03-31 H.J. Lu <hongjiu.lu@intel.com>
746
747 PR bootstrap/52812
748 * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
749
750 2012-03-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
751
752 * testsuite/lib/libitm.exp: load fortran-modules.exp
753
754 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
755
756 * configure.tgt (*-*-irix6*): Remove.
757
758 2012-03-13 Torvald Riegel <triegel@redhat.com>
759
760 PR libitm/52526
761 * config/linux/rwlock.cc (GTM::gtm_rwlock::read_lock): Fix lost
762 wake-up.
763
764 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
765
766 * configure.tgt (*-*-osf*): Remove.
767 * configure: Regenerate.
768
769 2012-03-05 Torvald Riegel <triegel@redhat.com>
770
771 * dispatch.h (CREATE_DISPATCH_METHODS_MEM): Don't execute
772 memtransfer/memset if size isn't larger than zero.
773
774 2012-03-02 Torvald Riegel <triegel@redhat.com>
775
776 * libitm.texi: Link to specification and add a usage example.
777
778 2012-02-24 Torvald Riegel <triegel@redhat.com>
779
780 * retry.cc (GTM::gtm_thread::number_of_threads_changed): Change
781 default dispatch for more than 1 thread to ml_wt.
782
783 2012-02-20 Torvald Riegel <triegel@redhat.com>
784
785 * method-gl.cc (gl_wt_dispatch::orec): Put on separate cacheline.
786
787 2012-02-20 Torvald Riegel <triegel@redhat.com>
788
789 * method-gl.cc (gl_wt_dispatch::rollback): Optimize memory orders.
790
791 2012-02-20 Torvald Riegel <triegel@redhat.com>
792
793 * method-gl.cc (gl_wt_dispatch::trycommit): Remove handling of
794 serial mode corner cases made obsolete by prior gtm_rwlock changes.
795 (gl_wt_dispatch.rollback): Same.
796
797 2012-02-20 Torvald Riegel <triegel@redhat.com>
798
799 * method-gl.cc (gl_wt_dispatch::pre_write): Optimize memory orders.
800
801 2012-02-20 Torvald Riegel <triegel@redhat.com>
802
803 * method-gl.cc (gl_wt_dispatch::memtransfer_static): Add missing undo
804 for RfW src. Optimize number of calls to gtm_thr.
805
806 2012-02-20 Torvald Riegel <triegel@redhat.com>
807
808 * beginend.cc (GTM::gtm_thread::begin_transaction): Move serial lock
809 acquisition to ...
810 * retry.cc (GTM::gtm_thread::decide_begin_dispatch): ... here.
811 (default_dispatch): Make atomic.
812 (GTM::gtm_thread::set_default_dispatch): Access atomically.
813 (GTM::gtm_thread::decide_retry_strategy): Access atomically and
814 use decide_begin_dispatch() if default_dispatch might have changed.
815 (GTM::gtm_thread::number_of_threads_changed): Initialize
816 default_dispatch here.
817
818 2012-02-15 Iain Sandoe <iains@gcc.gnu.org>
819 Patrick Marlier <patrick.marlier@gmail.com>
820
821 PR libitm/52220
822 * alloc_cpp.cc: No dummy definitions for darwin.
823 * eh_cpp.cc: Likewise.
824
825 2012-02-14 Richard Henderson <rth@redhat.com>
826
827 * config/x86/target.h (GTM_longjmp): Correct the .cfi corrections.
828
829 2012-02-14 Uros Bizjak <ubizjak@gmail.com>
830
831 * config/x86/target.h (GTM_longjmp): Correct .cfi directives.
832
833 2012-02-14 Torvald Riegel <triegel@redhat.com>
834
835 * libitm_i.h (GTM::gtm_rwlog_entry): New.
836 (GTM::gtm_thread): Add read and write logs.
837 (GTM::dispatch_ml_wt): Declare.
838 * retry.cc (parse_default_method): Support ml_wt.
839 * method-ml.cc: New file.
840 * Makefile.am: Add method-ml.cc.
841 * Makefile.in: Regenerate.
842
843 2012-02-14 Torvald Riegel <triegel@redhat.com>
844
845 * dispatch.h (GTM::abi_dispatch::supports): New.
846 (GTM::method_group::reinit): New.
847 * retry.cc (GTM::gtm_thread::decide_retry_strategy): Use reinit().
848 (GTM::gtm_thread::number_of_threads_changed): Check that the method
849 supports the current situation.
850
851 2012-02-14 Torvald Riegel <triegel@redhat.com>
852
853 * util.cc (GTM::xcalloc): New.
854 * common.h (GTM::xcalloc): Declare.
855
856 2012-02-14 Eric Botcazou <ebotcazou@adacore.com>
857
858 * config/sparc/target.h (cpu_relax): Read from CC register.
859 * config/sparc/sjlj.S (GTM_longjmp): Restore %fp atomically.
860
861 2012-02-14 Uros Bizjak <ubizjak@gmail.com>
862
863 * config/x86/target.h (GTM_longjmp): Jump indirect from memory address.
864
865 2012-02-13 Eric Botcazou <ebotcazou@adacore.com>
866
867 * configure.tgt (target_cpu): Handle sparc and sparc64/sparcv9.
868 * config/sparc/cacheline.h: New file.
869 * config/sparc/target.h: Likewise.
870 * config/sparc/sjlj.S: Likewise.
871 * config/linux/sparc/futex_bits.h: Likewise.
872
873 2012-02-13 Eric Botcazou <ebotcazou@adacore.com>
874
875 * configure.ac (link_itm): Fix comment.
876 * configure: Regenerate.
877 * testsuite/lib/libitm.exp: Do not pass -litm for the link.
878
879 2012-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
880
881 PR libitm/51822
882 * testsuite/libitm.c++/c++.exp (lang_link_flags): Add -shared-libgcc.
883 Correct libgomp references.
884
885 2012-01-24 Torvald Riegel <triegel@redhat.com>
886
887 * config/linux/rwlock.cc (GTM::gtm_rwlock::write_unlock): Fix reader
888 wake-up.
889
890 2012-01-24 Uros Bizjak <ubizjak@gmail.com>
891
892 * config/x86/target.h (gtm_jmpbuf) [__x86_64__]: Move rip to the
893 end of structure.
894 * config/x86/sjlj.S (_ITM_beginTransaction) [__x86_64__]: Update
895 offset values. Do not copy return address. Decrement stack
896 by 56 bytes only.
897 (GTM_longjump) [__x86_64__]: Update offset values.
898
899 2012-01-23 Uros Bizjak <ubizjak@gmail.com>
900
901 PR libitm/51830
902 * config/x86/sjlj.S (_ITM_beginTransaction) [!__x86_64__]: Load
903 the first function argument to %eax.
904
905 2012-01-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
906
907 * libitm.h (_ITM_getThreadnum): Remove.
908 * libitm.map (_ITM_getThreadnum): Remove from LIBITM_1.0.
909
910 2012-01-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
911
912 * clearcap.map: New file.
913 * acinclude.m4 (LIBITM_CHECK_LINKER_HWCAP): New test.
914 * configure.ac: Call it.
915 Clear HWCAP_LDFLAGS if defaulting to -mavx.
916 * Makefile.am (AM_LDFLAGS): Add $(HWCAP_LDFLAGS)
917 * configure: Regenerate.
918 * Makefile.in: Regenerate.
919 * testsuite/Makefile.in: Regenerate.
920
921 2012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
922
923 PR libitm/51173
924 * testsuite/libitm.c++/static_ctor.C: Skip test, note PR, remove
925 include, exclude options.
926
927 2012-01-14 Torvald Riegel <triegel@redhat.com>
928
929 * local.cc (GTM::gtm_undolog::rollback): Truncate undo log after
930 rolling back.
931 * containers.h (GTM::vector::set_size): New.
932
933 2012-01-14 Torvald Riegel <triegel@redhat.com>
934
935 PR libitm/51855
936 * config/generic/tls.h (GTM::mask_stack_top): New.
937 (GTM::mask_stack_bottom): Declare.
938 * config/generic/tls.c (GTM::mask_stack_bottom): New.
939 * local.cc (gtm_undolog::rollback): Filter out any updates that
940 overlap the libitm stack. Add current transaction as parameter.
941 * libitm_i.h (GTM::gtm_undolog::rollback): Adapt.
942 * beginend.cc (GTM::gtm_thread::rollback): Adapt.
943 * testsuite/libitm.c/stackundo.c: New test.
944
945 2012-01-10 Richard Henderson <rth@redhat.com>
946
947 * libitm_i.h (_Unwind_DeleteException): Declare weak.
948 * eh_cpp.cc (_Unwind_DeleteException): Define for
949 !HAVE_ELF_STYLE_WEAKREF.
950
951 2012-01-08 Torvald Riegel <triegel@redhat.com>
952
953 * local.cc (GTM_LB): Use GTM::gtm_undolog.
954 (GTM::gtm_thread::drop_references_undolog): Remove.
955 (GTM::gtm_thread::commit_undolog,
956 GTM::gtm_thread::rollback_undolog): Move to ...
957 * libitm_i.h (GTM::gtm_undolog): ...here. New.
958 (GTM::gtm_undolog_entry): Remove.
959 (GTM::gtm_thread): Adapt.
960 * beginend.cc (GTM::gtm_thread::rollback): Adapt.
961 (GTM::gtm_thread::trycommit): Adapt.
962 * method-serial.cc (serial_dispatch::log): Adapt.
963 * method-gl.cc (gl_wt_dispatch::pre_write): Adapt.
964 (gl_wt_dispatch::store): Fix likely/unlikely.
965 * containers.h (GTM::vector::resize): Add additional_capacity
966 parameter and handle it.
967 (GTM::vector::resize_noinline): New/adapt.
968 (GTM::vector::push): New.
969
970 2012-01-06 Richard Henderson <rth@redhat.com>
971
972 * configure.tgt: Support powerpc-linux and powerpc-darwin.
973 * config/linux/powerpc/futex_bits.h: New file.
974 * config/powerpc/cacheline.h: New file.
975 * config/powerpc/sjlj.S: New file.
976 * config/powerpc/target.h: New file.
977 * config/generic/asmcfi.h (cfi_offset): New.
978 (cfi_restore, cfi_undefined): New.
979
980 2012-01-05 Aldy Hernandez <aldyh@redhat.com>
981
982 PR other/51171
983 * testsuite/libitm.c/reentrant.c: Remove xfail.
984 (thread): Pass x to pure().
985 From Patrik Marlier <patrick.marlier@gmail.com>.
986
987 2011-12-24 Torvald Riegel <triegel@redhat.com>
988
989 * beginend.cc (GTM::gtm_thread::trycommit): Don't enforce
990 privatization safety if already in serial mode.
991
992 2011-12-24 Torvald Riegel <triegel@redhat.com>
993
994 * beginend.cc (GTM::gtm_thread::restart): Add and handle
995 finish_serial_upgrade parameter.
996 * libitm.h (GTM::gtm_thread::restart): Adapt declaration.
997 * config/linux/rwlock.cc (GTM::gtm_rwlock::write_lock_generic):
998 Don't unset reader flag.
999 (GTM::gtm_rwlock::write_upgrade_finish): New.
1000 * config/posix/rwlock.cc: Same.
1001 * config/linux/rwlock.h (GTM::gtm_rwlock::write_upgrade_finish):
1002 Declare.
1003 * config/posix/rwlock.h: Same.
1004 * method-serial.cc (GTM::gtm_thread::serialirr_mode): Unset reader
1005 flag after commit or after rollback when restarting.
1006
1007 2011-12-24 Torvald Riegel <triegel@redhat.com>
1008
1009 * beginend.cc (GTM::gtm_thread::begin_transaction): Add comment.
1010 (GTM::gtm_thread::try_commit): Changed memory order.
1011 * config/linux/alpha/futex_bits.h (sys_futex0): Take atomic int
1012 as parameter.
1013 * config/linux/x86/futex_bits.h (sys_futex0): Same.
1014 * config/linux/sh/futex_bits.h (sys_futex0): Same.
1015 * config/linux/futex_bits.h (sys_futex0): Same.
1016 * config/linux/futex.cc (futex_wait, futex_wake): Same.
1017 * config/linux/futex.h (futex_wait, futex_wake): Same.
1018 * config/linux/rwlock.h (gtm_rwlock::writers,
1019 gtm_rwlock::writer_readers, gtm_rwlock::readers): Change to atomic
1020 ints.
1021 * config/linux/rwlock.cc (gtm_rwlock::read_lock,
1022 gtm_rwlock::write_lock_generic, gtm_rwlock::read_unlock,
1023 gtm_rwlock::write_unlock): Fix memory orders and fences.
1024 * config/posix/rwlock.cc (gtm_rwlock::read_lock,
1025 gtm_rwlock::write_lock_generic, gtm_rwlock::read_unlock,
1026 gtm_rwlock::write_unlock): Same.
1027 * config/linux/rwlock.h (gtm_rwlock::summary): Change to atomic int.
1028 * method-gl.cc (gl_mg::init, gl_wt_dispatch::memtransfer_static,
1029 gl_wt_dispatch::memset_static, gl_wt_dispatch::begin_or_restart):
1030 Add comments.
1031 (gl_wt_dispatch::pre_write, gl_wt_dispatch::validate,
1032 gl_wt_dispatch::load, gl_wt_dispatch::store,
1033 gl_wt_dispatch::try_commit, gl_wt_dispatch::rollback): Fix memory
1034 orders and fences. Add comments.
1035
1036 2011-12-21 Jakub Jelinek <jakub@redhat.com>
1037
1038 * Makefile.am (AM_CXXFLAGS): Put $(XCFLAGS) first.
1039 * Makefile.in: Regenerated.
1040
1041 2011-12-17 Kaz Kojima <kkojima@gcc.gnu.org>
1042
1043 * configure.tgt: Add sh* case.
1044 * config/sh/target.h: New file.
1045 * config/sh/sjlj.S: New file.
1046 * config/linux/sh/futex_bits.h: New file.
1047
1048 2011-12-14 Richard Henderson <rth@redhat.com>
1049
1050 * config/arm/hwcap.h, config/arm/hwcap.cc: New files.
1051 * config/arm/sjlj.S, config/arm/target.h: New files.
1052 * config/generic/asmcfi.h (cfi_adjust_cfa_offset): New.
1053 (cfi_rel_offset): New.
1054 * config/linux/futex_bits.h: New file.
1055 * config/linux/futex.cc: Include futex_bits.h here...
1056 * config/linux/futex.h: ... not here.
1057 * Makefile.am (libitm_la_SOURCES) <ARCH_ARM>: Add hwcap.cc.
1058 * configure.ac (ARCH_AM): New conditional.
1059 * Makefile.in, configure: Rebuild.
1060 * configure.tgt: Handle ARM.
1061
1062 2011-12-13 Richard Henderson <rth@redhat.com>
1063
1064 * config/posix/rwlock.cc (gtm_rwlock::write_lock_generic): Fix
1065 signed/unsigned comparison werror.
1066
1067 * local_atomic: New file.
1068 * libitm_i.h: Include it.
1069 (gtm_thread::shared_state): Use atomic template.
1070 * beginend.cc (GTM::gtm_clock): Use atomic template.
1071 (global_tid): Use atomic template if 64-bit atomics available.
1072 (gtm_thread::gtm_thread): Update shared_state access.
1073 (gtm_thread::trycommit): Likewise.
1074 (choose_code_path): Update global_tid access.
1075 * method-gl.cc (gl_mg::orec): Use atomic template. Update all users.
1076 * stmlock.h (GTM::gtm_clock): Use atomic template.
1077 (gtm_get_clock, gtm_inc_clock): Update accesses.
1078 * config/linux/rwlock.cc (gtm_rwlock::read_lock): Remove
1079 redundant __sync_synchronize after atomic shared_state access.
1080 * config/posix/rwlock.cc (gtm_rwlock::read_lock): Likewise.
1081 (gtm_rwlock::write_lock_generic): Likewise.
1082 (gtm_rwlock::read_unlock): Likewise.
1083 * config/alpha/target.h (atomic_read_barrier): Remove.
1084 (atomic_write_barrier): Remove.
1085 * config/x86/target.h (atomic_read_barrier): Remove.
1086 (atomic_write_barrier): Remove.
1087
1088 2011-11-30 Richard Henderson <rth@redhat.com>
1089
1090 * libitm_i.h (GTM_longjmp): Swap first and second arguments.
1091 * beginend.c (_ITM_abortTransaction): Update to match.
1092 (GTM::gtm_thread::restart): Likewise.
1093 * config/alpha/sjlj.S (GTM_longjmp): Likewise.
1094 * config/x86/sjlj.S (GTM_longjmp): Likewise.
1095
1096 2011-11-23 Iain Sandoe <iains@gcc.gnu.org>
1097
1098 * Makefile.am (libitm_la_LDFLAGS): Remove "-no-undefined".
1099 * Makefile.in: Regenerate.
1100
1101 2011-11-22 Iain Sandoe <iains@gcc.gnu.org>
1102
1103 * configure.ac: Use GCC_CHECK_ELF_STYLE_WEAKREF.
1104 * alloc_cpp.cc: Generate dummy functions if we don't
1105 HAVE_ELF_STYLE_WEAKREF.
1106 * eh_cpp.cc: Likewise.
1107 * configure: Regenerate.
1108 * aclocal.m4: Likewise.
1109 * config.h.in: Likewise.
1110 * Makefile.in: Likewise.
1111 * testsuite/Makefile.in: Likewise.
1112
1113 2011-11-22 Iain Sandoe <iains@gcc.gnu.org>
1114
1115 * config/x86/sjlj.S (CONCAT1, CONCAT2, SYM): Respond to
1116 __USER_LABEL_PREFIX__ for targets that use it.
1117 (TYPE, SIZE, HIDDEN): New macros to assist on non-elf targets.
1118 (_ITM_beginTransaction): Use SYM, TYPE, SIZE macros to assist
1119 in portability to non-elf targets.
1120 (GTM_longjmp): Likewise.
1121 * libitm_i.h (begin_transaction): Apply __USER_LABEL_PREFIX__
1122 where required.
1123
1124 2011-11-22 Iain Sandoe <iains@gcc.gnu.org>
1125
1126 * testsuite/libitm.c/memcpy-1.c: Allow for MAP_ANON spelling.
1127 * testsuite/libitm.c/memset-1.c: Likewise.
1128
1129 2011-11-21 Andreas Tobler <andreast@fgznet.ch>
1130
1131 * configure: Regenerate.
1132
1133 2011-11-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1134
1135 * acinclude.m4 (LIBITM_CHECK_LINKER_FEATURES): Handle gold.
1136 (LIBITM_ENABLE_SYMVERS): Handle sun style.
1137 * Makefile.am: Handle sun style versioning.
1138 (libitm_la_LINK): Add $(libitm_la_LDFLAGS).
1139 * configure: Regenerate.
1140 * Makefile.in: Regenerate.
1141
1142 2011-11-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1143
1144 * config/generic/asmcfi.h: Fix comment.
1145 * config/x86/sjlj.S (_ITM_beginTransaction): Provide ELF PIC code
1146 sequence without .hidden support, error for non-ELF targets.
1147 (GTM_longjmp) [__ELF__]: Only use .hidden if
1148 HAVE_ATTRIBUTE_VISIBILITY.
1149
1150 2011-11-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1151
1152 * alloc_cpp.cc [__osf__] (_ZnwX, _ZdlPv, _ZnaX, _ZdaPv,
1153 _ZnwXRKSt9nothrow_t, _ZdlPvRKSt9nothrow_t, _ZdaPvRKSt9nothrow_t):
1154 Dummy functions.
1155 * eh_cpp.cc [__osf__] (__cxa_allocate_exception, __cxa_throw,
1156 __cxa_begin_catch, __cxa_end_catch, __cxa_tm_cleanup): Likewise.
1157
1158 2011-11-16 Uros Bizjak <ubizjak@gmail.com>
1159
1160 PR bootstrap/51098
1161 * acinclude.m4 (LIBITM_CHECK_AS_AVX): Fix target selector.
1162 * configure: Regenerate.
1163
1164 2011-11-14 H.J. Lu <hongjiu.lu@intel.com>
1165
1166 * testsuite/lib/libitm.exp: Check ia32 instead of ilp32.
1167
1168 2011-11-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1169
1170 * config/alpha/sjlj.S (_ITM_beginTransaction) [!__ELF__]: Don't use
1171 .hidden.
1172 (.note.GNU-stack): Only use if __linux__.
1173 * alloc_cpp.cc [!__osf__] (_ZnaXRKSt9nothrow_t): Dummy function.
1174 * testsuite/libitm.c/notx.c: Use dg-options "-pthread".
1175 * testsuite/libitm.c/reentrant.c: Likewise.
1176 * testsuite/libitm.c/simple-2.c: Likewise.
1177 * testsuite/libitm.c/txrelease.c: Likewise.
1178 * testsuite/libitm.c++/static_ctor.C: Likewise.
1179
1180 2011-11-10 Richard Henderson <rth@redhat.com>
1181
1182 * config/x86/x86_avx.cc: Remove #undef __AVX__ hack. Tidy comments.
1183 * Makefile.am (x86_avx.lo): Only add -mavx if ARCH_X86_AVX.
1184 * configure.ac (ARCH_X86_AVX): New conditional.
1185 * Makefile.in, configure: Rebuild.
1186
1187 2011-11-09 Richard Henderson <rth@redhat.com>
1188
1189 * acinclude.m4 (LIBITM_CHECK_AS_AVX): New.
1190 * configure.ac: Use it.
1191 * config.h.in, configure: Rebuild.
1192 * config/x86/x86_avx.cc: Handle !HAVE_AS_AVX.
1193
1194 2011-11-09 Richard Henderson <rth@redhat.com>
1195
1196 * barrier.tpl, memcpy.cc, memset.cc, method-wbetl.cc: Remove file.
1197 * config/alpha/unaligned.h: Remove file.
1198 * config/generic/unaligned.h: Remove file.
1199 * config/x86/unaligned.h: Remove file.
1200 * config/generic/cachepage.h: Remove file.
1201 * config/posix/cachepage.cc: Remove file.
1202 * config/generic/cacheline.cc: Remove file.
1203 * config/x86/cacheline.cc: Remove file.
1204 * config/generic/cacheline.h (gtm_cacheline): Remove the
1205 store_mask, copy_mask, copy_mask_wb methods.
1206 * config/x86/cacheline.h: Likewise.
1207 * config/alpha/cacheline.h: Fall back to generic after setting size.
1208 * config/generic/tls.cc (gtm_mask_stack): Remove.
1209 * config/x86/x86_avx.cc (GTM_vpperm_shift): Remove.
1210 (GTM_vpalignr_table): Remove.
1211 * config/x86/x86_sse.cc (GTM_palignr_table): Remove.
1212 (GTM_pshift_table): Remove.
1213 * config/libitm_i.h: Don't include cachepage.h.
1214 * Makefile.am (libitm_la_SOURCES): Remove cacheline.cc, cachepage.cc
1215 * Makefile.in, testsuite/Makefile.in: Rebuild.
1216
1217 2011-11-09 Richard Henderson <rth@redhat.com>
1218
1219 * config/x86/cacheline.h (gtm_cacheline::store_mask): Use .byte
1220 to emit branch prediction hint.
1221
1222 * config/x86/sjlj.S: Protect elf directives with __ELF__.
1223 Protect .note.GNU-stack with __linux__.
1224
1225 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Test it.
1226 * configure, aclocal.m4, config.h.in: Rebuild.
1227 * config/generic/asmcfi.h: New file.
1228 * config/x86/sjlj.S: Use it.
1229
1230 2011-11-08 Richard Henderson <rth@redhat.com>
1231
1232 * local.cc (_ITM_LB): Use a normal call, not a function alias.
1233
1234 2011-11-08 Richard Henderson <rth@redhat.com>
1235
1236 * configure.tgt: Test correct directory for supported cpus.
1237
1238 * configure.ac: Exit if unsupported.
1239 * configure: Rebuild.
1240 * configure.tgt: Delete boilerplate from libgomp for unsupported
1241 targets. Set UNSUPPORTED for unsupported targets.
1242
1243 2011-11-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1244
1245 * configure.tgt: Handle i386 like i[456]86.
1246 * config/generic/tls.h [!HAVE_ARCH_GTM_THREAD] (gtm_thr): Don't
1247 take address.
1248 * config/generic/tls.cc [!HAVE_ARCH_GTM_THREAD ||
1249 !HAVE_ARCH_GTM_THREAD_DISP] (_gtm_thr_tls): New variable.
1250
1251 2011-11-05 Aldy Hernandez <aldyh@redhat.com>
1252
1253 * method-wbetl.cc: Update copyright notice.
1254 * aatree.cc: Same.
1255 * util.cc: Same.
1256 * libitm.h: Same.
1257 * memset.cc: Same.
1258 * eh_cpp.cc: Same.
1259 * barrier.tpl: Same.
1260 * useraction.cc: Same.
1261 * stmlock.h: Same.
1262 * memcpy.cc: Same.
1263 * common.h: Same.
1264 * config/generic/tls.cc: Same.
1265 * config/generic/cacheline.h: Same.
1266 * config/generic/cachepage.h: Same.
1267 * config/generic/cacheline.cc: Same.
1268 * config/generic/unaligned.h: Same.
1269 * config/x86/cacheline.h: Same.
1270 * config/x86/cacheline.cc: Same.
1271 * config/x86/unaligned.h: Same.
1272 * config/alpha/cacheline.h: Same.
1273 * config/alpha/unaligned.h: Same.
1274 * config/alpha/sjlj.S: Same.
1275 * config/posix/cachepage.cc: Same.
1276 * config/linux/futex.h: Same.
1277 * config/linux/alpha/futex_bits.h: Same.
1278
1279 2011-11-04 Torvald Riegel <triegel@redhat.com>
1280
1281 * libitm.texi: No cover text and invariant sections.
1282
1283 2011-11-03 Richard Henderson <rth@redhat.com>
1284
1285 * local_type_traits: New file.
1286 * libitm_i.h: Use it. Use C headers, not C++ wrappers.
1287
1288 2011-11-03 Richard Henderson <rth@redhat.com>
1289
1290 * configure.ac: Don't test for gfortran.
1291 * configure: Rebuild.
1292
1293 * testsuite/lib/libitm.exp: Don't include gfortran-dg.exp.
1294 * testsuite/libitm.c++/c++.exp: Don't use gfortran-dg-runtest.
1295
1296 2011-11-03 Aldy Hernandez <aldyh@redhat.com>
1297
1298 * testsuite/libitm.c/memcpy-1.c: Add copyright notice.
1299 * testsuite/libitm.c/memset-1.c: Same.
1300 * testsuite/libitm.c/c.exp: Same.
1301 * testsuite/lib/libitm-dg.exp: Same.
1302 * testsuite/lib/libitm.exp: Same.
1303 * testsuite/libitm.c++/c++.exp: Same.
1304
1305 2011-11-03 Aldy Hernandez <aldyh@redhat.com>
1306
1307 * testsuite/config/default.exp: Update copyright date.
1308 * configure.ac: Add copyright info.
1309 * configure.tgt: Same.
1310
1311 2011-11-03 Aldy Hernandez <aldyh@redhat.com>
1312
1313 * testsuite/libitm.c/reentrant.c: XFAIL.
1314 * testsuite/libitm.c++/static_ctor.C: XFAIL.
1315
1316 2011-10-29 Torvald Riegel <triegel@redhat.com>
1317
1318 * beginend.cc (GTM::gtm_thread::rollback): Add aborting flag and
1319 handle aborts.
1320 (_ITM_abortTransaction): Handle aborts of outer transactions.
1321 * libitm_i.h: Same.
1322 * eh_cpp.cc (GTM::gtm_thread::revert_cpp_exceptions): Fix assertion.
1323 * libitm.texi: Document aborts of outer transactions.
1324 * testsuite/libitm.c/cancel.c: New file.
1325
1326 2011-10-19 Torvald Riegel <triegel@redhat.com>
1327
1328 * testsuite/*: Change __transaction to __transaction_atomic or
1329 __transaction_relaxed.
1330
1331 2011-10-19 Torvald Riegel <triegel@redhat.com>
1332
1333 * config/linux/x86/tls.h (abi_disp): Make TLS slot read volatile.
1334 (gtm_thr): Same.
1335
1336 2011-10-19 Torvald Riegel <triegel@redhat.com>
1337
1338 * libitm_i.h: Add gl_wt dispatch.
1339 * retry.cc (parse_default_method): Same.
1340 * method-gl.cc: New file.
1341 * Makefile.am: Use method-gl.cc.
1342 * Makefile.in: Rebuild.
1343
1344 2011-10-19 Torvald Riegel <triegel@redhat.com>
1345
1346 * beginend.cc (GTM::gtm_thread::trycommit): Ensure privatization
1347 safety if requested by a TM method.
1348 * dispatch.h (GTM::abi_dispatch::trycommit): Add parameter for
1349 privatization safety.
1350 * method-serial.cc: Same.
1351
1352 2011-10-19 Torvald Riegel <triegel@redhat.com>
1353
1354 * libitm_i.h: Renamed gtm_local_undo to gtm_undolog_entry.
1355 (GTM::gtm_thread): Renamed local_undo to undolog. Renamed
1356 undolog-related member functions from *_local to *_undolog.
1357 * local.cc (gtm_thread::commit_undolog): Same.
1358 * beginend.cc (GTM::gtm_thread::trycommit): Same.
1359 (GTM::gtm_thread::rollback): Roll back undolog before
1360 dispatch-specific rollback.
1361
1362 2011-10-19 Torvald Riegel <triegel@redhat.com>
1363
1364 * retry.cc (GTM::gtm_thread::decide_retry_strategy): Handle
1365 re-initialization of the current method group.
1366 * libitm_i.h (GTM::gtm_restart_reason): Add restart reason for this.
1367
1368 2011-10-19 Torvald Riegel <triegel@redhat.com>
1369
1370 * alloc.cc (commit_allocations_2): Do not free transaction-local
1371 memory when committing a nested transaction.
1372
1373 2011-10-19 Torvald Riegel <triegel@redhat.com>
1374
1375 * method-serial.cc (GTM::gtm_thread::serialirr_mode): Fixed: Use
1376 serial-irrevocable dispatch, not serial.
1377
1378 2011-10-19 Torvald Riegel <triegel@redhat.com>
1379
1380 * libitm_i.h (GTM::gtm_restart_reason): Re-arrange and clean up
1381 declarations.
1382 * dispatch.h (GTM::abi_dispatch::begin_or_restart): New.
1383 * method-serial.cc: Implement begin_or_restart().
1384 * beginend.cc (GTM::gtm_thread::begin_transaction): Call
1385 dispatch-specific begin_or_restart().
1386 (GTM::gtm_thread::restart): Same.
1387
1388 2011-08-23 Torvald Riegel <triegel@redhat.com>
1389
1390 * retry.cc (GTM::gtm_thread::decide_retry_strategy): Cleanup. Fix
1391 restarting without switching to serial mode.
1392 (GTM::gtm_thread::decide_begin_dispatch): Let the caller set the
1393 transaction state. Choose closed-nesting alternative if available.
1394 (GTM::gtm_thread::set_default_dispatch): New.
1395 (parse_default_method): New.
1396 (GTM::gtm_thread::number_of_threads_changed): New.
1397 * method-serial.cc (GTM::serial_mg): New method group class.
1398 (GTM::serialirr_dispatch): Belongs to serial_mg. Remove reinit and
1399 fini.
1400 (GTM::serial_dispatch): Same.
1401 (GTM::serialirr_onwrite_dispatch): Same.
1402 (GTM::gtm_thread::serialirr_mode): Remove calls to fini.
1403 * beginend.cc (GTM::gtm_thread::~gtm_thread): Maintain number of
1404 registered threads.
1405 (GTM::gtm_thread::gtm_thread): Same.
1406 (_ITM_abortTransaction): Remove calls to abi_dispatch::fini().
1407 (GTM::gtm_thread::trycommit): Same. Reset number of restarts.
1408 (GTM::gtm_thread::begin_transaction): Let decide_begin_dispatch()
1409 choose dispatch but set state according to dispatch here.
1410 * dispatch.h (GTM::abi_dispatch::fini): Move to method group.
1411 (GTM::method_group): New class.
1412 (GTM::abi_dispatch): Add comments. Maintain pointer to method_group.
1413 * libitm_i.h (GTM::gtm_thread): Add declarations for new members.
1414 * libitm.texi: Document TM methods, method groups, method life cycle.
1415 Rename method sets to method groups.
1416
1417 2011-08-23 Torvald Riegel <triegel@redhat.com>
1418
1419 * config/x86/tls.h: Moved to ...
1420 * config/linux/x86/tls.h: ... here.
1421
1422 2011-08-23 Torvald Riegel <triegel@redhat.com>
1423
1424 * config/x86/tls.h: Use __x86_64__ instead of __LP64__.
1425 Add X32 support.
1426 * config/x86/sjlj.S: Same.
1427
1428 2011-08-19 Torvald Riegel <triegel@redhat.com>
1429
1430 * config/linux/rwlock.h: New file.
1431 * config/linux/rwlock.c: New file.
1432 * configure.ac: Reenable futex support (undo SVN rev 157758).
1433 * Makefile.am: Same.
1434 * configure.tgt: Same.
1435 * config/linux/alpha/futex_bits.h: Same.
1436 * config/linux/futex.h: Same. Return number of woken processes.
1437 * config/linux/futex.cc: Same.
1438 (futex_wait): Remove spinning.
1439 * config/linux/x86/futex_bits.h: Same. Set futex timeout to zero.
1440 Use __x86_64__ instead of __LP64__.
1441 * aclocal.m4: Include generic futex checks.
1442 * configure: Rebuild.
1443 * Makefile.in: Rebuild.
1444 * testsuite/Makefile.in: Rebuild.
1445 * beginend.cc: Include pthread.h.
1446 * config/posix/cachepage.cc: Same.
1447
1448 2011-08-12 Torvald Riegel <triegel@redhat.com>
1449
1450 * config/x86/tls.h (gtm_tx, set_gtm_tx, setup_gtm_thr): Removed.
1451 (abi_disp, set_abi_disp): Move to tx's TLS slot.
1452 (set_gtm_thr): New.
1453 * config/generic/tls.h (gtm_tx, set_gtm_tx, setup_gtm_thr): Removed.
1454 (set_gtm_thr): New.
1455 (GTM::gtm_thread::thread_num): Removed.
1456 (GTM::gtm_thread): Renamed to GTM::gtm_thread_tls.
1457 * libitm_i.h (GTM::gtm_transaction): Renamed to GTM::gtm_thread. More
1458 tx-to-thread renaming.
1459 * beginend.cc: Adapted to tx-to-thread renaming.
1460 (GTM::gtm_thread::~gtm_thread): Extracted from thread_exit_handler().
1461 (GTM::gtm_thread::gtm_thread): Extracted from begin_transaction().
1462 * query.cc (_ITM_getTransactionId, _ITM_inTransaction): Renamed
1463 gtm_transaction to gtm_thread.
1464 (_ITM_getThreadnum): Removed. Not supported anymore.
1465 * testsuite/libitm.c/notx.c (main): Removed _ITM_getThreadnum call.
1466 * libitm.texi: Documented that _ITM_getThreadnum is not supported.
1467 * useraction.cc: Renamed gtm_transaction to gtm_thread. Adapted to
1468 gtm_tx-to-gtm_thr renaming if necessary.
1469 * eh_cpp.cc: Same.
1470 * local.cc: Same.
1471 * retry.cc: Same.
1472 * clone.cc: Same.
1473 * alloc.cc: Same.
1474 * alloc_c.cc: Same.
1475 * alloc_cpp.cc: Same.
1476 * method-serial.cc: Same.
1477 * config/generic/tls.cc: Same.
1478 * config/posix/rwlock.h (gtm_rwlock): Same.
1479 * config/posix/rwlock.cc: Same. Adapted to more tx-to-thread renaming.
1480
1481 2011-08-12 Torvald Riegel <triegel@redhat.com>
1482
1483 * config/posix/rwlock.cc (gtm_rwlock::read_lock): Changed locking
1484 implementation.
1485 (gtm_rwlock::read_unlock): Same.
1486 (gtm_rwlock::write_lock_generic): New. Generalized from ...
1487 (gtm_rwlock::write_lock, gtm_rwlock::write_upgrade): ... these.
1488 * libitm_i.h (GTM::gtm_transaction): Added shared_state.
1489 * config/posix/rwlock.h (GTM::gtm_rwlock): Removed a_reader and
1490 w_upgrade. Replaced by per-transaction flags (in shared_state).
1491 Added c_confirmed_writers.
1492 (GTM::gtm_rwlock::read_lock, GTM::gtm_rwlock::read_unlock,
1493 GTM::gtm_rwlock::write_upgrade): Add tx parameter.
1494 * retry.cc (GTM::gtm_transaction::decide_retry_strategy): Same.
1495 * method-serial.cc (GTM::gtm_transaction::serialirr_mode): Same.
1496 * beginend.cc (GTM::gtm_transaction::begin_transaction,
1497 _ITM_abortTransaction, GTM::gtm_transaction::trycommit): Same.
1498 * libitm.texi: Document locking conventions and implementations in
1499 libitm.
1500
1501 2011-08-12 Torvald Riegel <triegel@redhat.com>
1502
1503 * libitm_i.h (next_tx): Add list of all threads' transaction.
1504 * beginend.cc (GTM::gtm_transaction::begin_transaction): Register
1505 transaction with list of transactions and ...
1506 (thread_exit_handler): ... deregister here.
1507 * config/alpha/target.h: Add HW_CACHELINE_SIZE setting.
1508 * config/x86/target.h: Same.
1509
1510 2011-08-12 Torvald Riegel <triegel@redhat.com>
1511
1512 * testsuite/libitm.c++/static_ctor.C: New file.
1513
1514 2011-08-12 Torvald Riegel <triegel@redhat.com>
1515
1516 * testsuite/libitm.c/reentrant.c: New file.
1517
1518 2011-08-12 Torvald Riegel <triegel@redhat.com>
1519
1520 * config/generic/tls.h: Remove the free list for transactions and ...
1521 * beginend.cc (GTM::gtm_transaction::operator new): ... allocate ...
1522 (GTM::gtm_transaction::operator delete): ... and release here.
1523 (thread_exit_handler): New. Delete tx when thread terminates.
1524 (thread_exit_init): New.
1525 (GTM::gtm_transaction::begin_transaction): Set up on-exit handler.
1526 * testsuite/libitm.c/txrelease.c: New file.
1527
1528 2011-08-12 Torvald Riegel <triegel@redhat.com>
1529
1530 * query.cc (_ITM_getThreadnum): Set up gtm_thread if necessary.
1531 * testsuite/libitm.c/notx.c: New file.
1532
1533 2011-08-12 Torvald Riegel <triegel@redhat.com>
1534
1535 * config/generic/tls.h (gtm_thread): Move local_tid from here ...
1536 * libitm_i.h (local_tid): ... to here.
1537 * beginend.cc (GTM::gtm_transaction::begin_transaction): Same.
1538 (GTM::gtm_transaction::operator new): Set up gtm_thread if necessary.
1539
1540 2011-08-12 Torvald Riegel <triegel@redhat.com>
1541
1542 * retry.cc (GTM::gtm_transaction::decide_begin_dispatch): Use
1543 serialirr_onwrite_dispatch as new default for now.
1544 * method-serial.cc (serialirr_onwrite_dispatch): New.
1545 (GTM::dispatch_serialirr_onwrite): New.
1546 * libitm_i.h: Same.
1547
1548 2011-08-12 Torvald Riegel <triegel@redhat.com>
1549
1550 * beginend.cc (GTM::gtm_transaction::rollback): Roll back tx id as well.
1551 * query.cc (_ITM_getTransactionId): There is no active transaction if
1552 the current nesting level is zero.
1553
1554 2011-07-28 Torvald Riegel <triegel@redhat.com>
1555
1556 * beginend.cc (GTM::gtm_transaction::rollback): Fix nesting level
1557 rollback.
1558
1559 2011-07-28 Torvald Riegel <triegel@redhat.com>
1560
1561 * retry.cc (GTM::gtm_transaction::decide_begin_dispatch): Get
1562 transaction properties from the caller instead of from the
1563 transaction object.
1564 * libitm_i.h: Same.
1565 * beginend.cc (GTM::gtm_transaction::begin_transaction): Same.
1566
1567 2011-07-28 Torvald Riegel <triegel@redhat.com>
1568
1569 * local.cc (gtm_transaction::rollback_local): Support closed nesting.
1570 * eh_cpp.cc (GTM::gtm_transaction::revert_cpp_exceptions): Same.
1571 * dispatch.h: Same.
1572 * method-serial.cc: Same.
1573 * beginend.cc (GTM::gtm_transaction::begin_transaction): Change to
1574 flat nesting as default, and closed nesting on demand.
1575 (GTM::gtm_transaction::rollback): Same.
1576 (_ITM_abortTransaction): Same.
1577 (GTM::gtm_transaction::restart): Same.
1578 (GTM::gtm_transaction::trycommit): Same.
1579 (GTM::gtm_transaction::trycommit_and_finalize): Removed.
1580 (choose_code_path): New.
1581 (GTM::gtm_transaction_cp::save): New.
1582 (GTM::gtm_transaction_cp::commit): New.
1583 * query.cc (_ITM_inTransaction): Support flat nesting.
1584 * libitm_i.h (GTM::gtm_transaction_cp): New helper struct for nesting.
1585 (GTM::gtm_transaction): Support flat and closed nesting.
1586 * alloc.cc (commit_allocations_2): New.
1587 (commit_cb_data): New helper struct.
1588 (GTM::gtm_transaction::commit_allocations): Handle nested
1589 commits/rollbacks.
1590 * libitm.texi: Update user action section, add description of nesting.
1591
1592 2011-07-28 Torvald Riegel <triegel@redhat.com>
1593
1594 * libitm_i.h: Add closed nesting as restart reason.
1595 * retry.cc (GTM::gtm_transaction::decide_retry_strategy): Same.
1596
1597 2011-07-28 Torvald Riegel <triegel@redhat.com>
1598
1599 * useraction.cc: Use vector instead of list to store actions.
1600 Also support partial rollbacks for closed nesting.
1601 * libitm_i.h (GTM::gtm_transaction::user_action): Same.
1602 * beginend.cc: Same.
1603
1604 2011-07-28 Torvald Riegel <triegel@redhat.com>
1605
1606 * dispatch.h (GTM::abi_dispatch): Add can_run_uninstrumented_code and
1607 closed_nesting flags, as well as a closed nesting alternative.
1608 * method-serial.cc: Same.
1609 (serial_dispatch): Renamed to serialirr_dispatch.
1610 (GTM::dispatch_serialirr): Same.
1611 (serial_dispatch_ul): Renamed to serial_dispatch.
1612 (GTM::dispatch_serial): Same.
1613
1614 2011-07-28 Torvald Riegel <triegel@redhat.com>
1615
1616 * libitm.h (_ITM_codeProperties): Change pr_hasElse to the ABI's value.
1617
1618 2011-07-28 Torvald Riegel <triegel@redhat.com>
1619
1620 * aatree.h (aa_tree::remove): New.
1621 (aa_tree::operator new): Add placement new.
1622
1623 2011-07-02 Torvald Riegel <triegel@redhat.com>
1624
1625 * containers.h: New file.
1626 * util.cc (xmalloc, xrealloc): Accept cacheline-alloc flag.
1627 * libitm_i.h (xmalloc, xrealloc): Moved declarations from here ...
1628 * common.h: ... to here.
1629 (local_undo): Use GTM::vector for gtm_transaction::local_undo.
1630 * local.cc: Same.
1631
1632 2011-06-30 Torvald Riegel <triegel@redhat.com>
1633
1634 * libitm_i.h (STATE_ABORTING): Remove.
1635 * beginend.cc (_ITM_abortTransaction): Same.
1636 (GTM::gtm_transaction::trycommit_and_finalize): Same.
1637 * libitm.h (_ITM_registerThrownObject, _ITM_tryCommitTransaction): Remove.
1638 (_ITM_rollbackTransaction): Remove.
1639 * beginend.cc: Same.
1640 * libitm.map: Same.
1641 * libitm.texi: Document these ABI changes.
1642
1643 2011-06-30 Torvald Riegel <triegel@redhat.com>
1644
1645 * libitm.texi: New file.
1646 * Makefile.am: Add libitm.texi.
1647 * Makefile.in: Rebuild.
1648
1649 2011-06-30 Torvald Riegel <triegel@redhat.com>
1650
1651 * libitm_i.h: Move parts to common.h and dispatch.h.
1652 * common.h: New file.
1653 * dispatch.h: New file, new dispatch class.
1654 Rename GTM::abi_dispatch::lock_type to ls_modifier.
1655 RenameGTM::abi_dispatch::NOLOCK to NONTXNAL.
1656 * beginend.cc (GTM::gtm_transaction::begin_transaction): Delegate mode
1657 decision to retry.cc.
1658 * retry.cc (GTM::gtm_transaction::decide_retry_strategy): Use serial mode
1659 only.
1660 (GTM::gtm_transaction::decide_begin_dispatch): Same.
1661 * method-serial.cc: Adapt to new dispatch. Add serial mode with undo
1662 logging.
1663 * barrier.cc: Use new barriers definitions.
1664 (abi_dispatch::memmove_overlap_check): New.
1665 * config/x86/x86_sse.cc: Same.
1666 * config/x86/x86_avx.cc: Same.
1667 * Makefile.am: Don't build readonly and wbetl methods, memset.cc and
1668 memcpy.cc.
1669 * Makefile.in: Rebuild.
1670 * method-readonly.cc: Remove.
1671 * method-wbetl.cc: Rename GTM::abi_dispatch::lock_type to ls_modifier.
1672 Rename GTM::abi_dispatch::NOLOCK to NONTXNAL.
1673
1674 2011-06-30 Torvald Riegel <triegel@redhat.com>
1675
1676 * alloc_c.cc (_ITM_dropReferences): Don't support it anymore.
1677 * testsuite/libitm.c++/dropref.C: _ITM_dropReferences is expected to fail.
1678 * testsuite/libitm.c/dropref-2.c: Same.
1679 * testsuite/libitm.c/dropref.c: Same.
1680
1681 2011-06-30 Torvald Riegel <triegel@redhat.com>
1682
1683 * config/generic/tls.h (gtm_disp): Rename to abi_disp.
1684 * config/generic/tls.h (set_gtm_disp): Rename to set_abi_disp.
1685 * libitm_i.h: Rename gtm_dispatch to abi_dispatch.
1686 * alloc_c.cc: Same.
1687 * barrier.tpl: Same.
1688 * beginend.c: Same.
1689 * config/generic/tls.h: Same.
1690 * config/x86/tls.h: Same.
1691 * libitm_i.h: Same.
1692 * memcpy.cc: Same.
1693 * memset.cc: Same.
1694 * method-readonly.cc: Same.
1695 * method-serial.cc: Same.
1696 * method-wbetl.cc: Same.
1697 * retry.cc: Same.
1698
1699 2011-03-03 Richard Henderson <rth@redhat.com>
1700
1701 * config/posix/rwlock.cc (write_upgrade): Add missing case.
1702 From Patrik Marlier <patrick.marlier@unine.ch>.
1703
1704 2011-02-03 Richard Henderson <rth@redhat.com>
1705
1706 * acinclude.m4 (LIBITM_CHECK_SIZE_T_MANGLING): New.
1707 * configure.ac: Use it.
1708 * configure, config.h.in: Rebuild.
1709 * alloc_cpp.cc (_ZnwX): Use MANGLE_SIZE_T in constructing the name.
1710 (_ZnaX, _ZnwXRKSt9nothrow_t, _ZnaXRKSt9nothrow_t, _ZGTtnwX,
1711 _ZGTtnaX, _ZGTtnwXRKSt9nothrow_t, _ZGTtnaXRKSt9nothrow_t): Likewise.
1712 * libitm.map: Use wildcards to match size_t mangling.
1713
1714 2010-12-14 Richard Henderson <rth@redhat.com>
1715
1716 * beginend.cc (GTM::gtm_transaction::begin_transaction): Allocate
1717 blocks of TIDs per thread.
1718 * config/generic/tls.h (struct gtm_thread): Add local_tid member.
1719 (setup_gtm_thr): Return the thread structure.
1720 * config/x86/tls.h (setup_gtm_thr): Likewise.
1721
1722 2010-12-14 Richard Henderson <rth@redhat.com>
1723
1724 * clone.cc (table_lock): Remove.
1725 (find_clone): Don't take it.
1726 (ExcludeTransaction): New helper class.
1727 (_ITM_registerTMCloneTable): Use it.
1728 (_ITM_deregisterTMCloneTable): Likewise.
1729
1730 2010-12-14 Richard Henderson <rth@redhat.com>
1731
1732 * config/x86/tls.h: New file.
1733
1734 2010-07-15 Richard Henderson <rth@redhat.com>
1735
1736 * Makefile.am (AM_CXXFLAGS): Add -funwind-tables.
1737 * Makefile.in: Rebuild.
1738
1739 2010-07-13 Aldy Hernandez <aldyh@redhat.com>
1740
1741 * method-wbetl.cc (trydropreference): Fix source line.
1742
1743 2010-07-13 Aldy Hernandez <aldyh@redhat.com>
1744
1745 * libitm.h: Add comment.
1746 * libitm_i.h (begin_transaction): Add ITM_REGPARM.
1747
1748 2010-07-07 Aldy Hernandez <aldyh@redhat.com>
1749
1750 * configure.ac: Call LIBITM_CHECK_64BIT_SYNC_BUILTINS.
1751 * beginend.cc (begin_transaction): If 64-bit sync builtins are not
1752 available, use pthread mutexes.
1753 * acinclude.m4 (LIBITM_CHECK_64BIT_SYNC_BUILTINS): New.
1754 * config.h.in: Regenerate.
1755 * configure: Regenerate.
1756
1757 2010-07-06 Aldy Hernandez <aldyh@redhat.com>
1758
1759 * libitm.h (ITM_PURE): Define.
1760 Declare _ITM_malloc, _ITM_calloc, and _ITM_free.
1761
1762 2010-06-28 Aldy Hernandez <aldyh@redhat.com>
1763
1764 * method-wbetl.cc (class wbetl_dispatch): Add trydropreference.
1765 (validate): Add comment.
1766 (trydropreference): New.
1767 * method-readonly.cc (class readonly_dispatch): Add
1768 trydropreference.
1769 * alloc_c.cc (_ITM_dropReferences): Remove const attribute.
1770 Call trydropreference().
1771 * libitm.h (_ITM_dropReferences): Remove const attribute.
1772 * method-serial.cc (class serial_dispatch): Add trydropreference.
1773 * libitm_i.h (struct gtm_dispatch): Add trydropreference.
1774
1775 2010-06-28 Aldy Hernandez <aldyh@redhat.com>
1776
1777 * memcpy.cc (do_memcpy): Comment.
1778
1779 2010-06-25 Aldy Hernandez <aldyh@redhat.com>
1780
1781 * barrier.tpl: Add comments throughout.
1782
1783 2010-06-24 Aldy Hernandez <aldyh@redhat.com>
1784
1785 * method-wbetl.cc (struct w_entry): Add comments.
1786 (trycommit): Same.
1787 (rollback): Same.
1788
1789 2010-06-24 Aldy Hernandez <aldyh@redhat.com>
1790
1791 * alloc_c.cc (_ITM_dropReferences): New.
1792 * libitm.map (_ITM_dropReferences): Add.
1793 * libitm.h (_ITM_dropReferences): Add transaction_pure attribute.
1794 * libitm_i.h (struct gtm_transaction): Declare
1795 drop_references_allocations and drop_references_local.
1796 * local.cc (rollback_local): Ignore memory when applicable.
1797 (drop_references_local): New.
1798
1799 2010-06-23 Richard Henderson <rth@redhat.com>
1800
1801 * barrier.tpl, beginend.cc, clone.cc, tls.h, memcpy.cc,
1802 memset.cc, method-serial.cc: Revert the 2010-06-16 change.
1803 * config/x86/target.h (struct gtm_jmpbuf): Change CFA type to void*.
1804 * config/alpha/target.h: Likewise.
1805 * config/generic/tls.cc (gtm_mask_stack): Use it.
1806
1807 2010-06-23 Richard Henderson <rth@redhat.com>
1808
1809 * config/posix/cachepage.cc (gtm_cacheline_page::operator new): Use
1810 a mutex instead of trying a lock-free compare-and-swap on the list.
1811 (gtm_cacheline_page::operator delete): Likewise.
1812
1813 2010-06-16 Richard Henderson <rth@redhat.com>
1814
1815 * method-wbetl.cc (wbetl_dispatch::trycommit): Discard changes
1816 that overlap the libitm stack.
1817 * barrier.tpl: Mark incoming stack.
1818 * beginend.cc (_ITM_rollbackTransaction, _ITM_abortTransaction,
1819 _ITM_commitTransaction, _ITM_commitTransactionEH): Likewise.
1820 * clone.cc (_ITM_getTMCloneOrIrrevocable): Likewise.
1821 * memcpy.cc, memset.cc: Likewise.
1822 * method-serial.cc (_ITM_changeTransactionMode): Likewise.
1823 * config/generic/tls.h (gtm_thread): Add stack_top member.
1824 (gtm_stack_top, set_gtm_stack_top, struct gtm_stack_marker): New.
1825 * libitm_i.h (gtm_mask_stack): Declare.
1826 * config/generic/tls.cc: New file.
1827 * Makefile.am (libitm_la_SOURCES): Add it.
1828 (AM_CXXFLAGS): Turn off exceptions.
1829 * Makefile.in: Rebuild.
1830
1831 2010-06-16 Richard Henderson <rth@redhat.com>
1832
1833 * alloc.cc (struct gtm_alloc_action): Move definition ...
1834 * libitm_i.h: ... here.
1835 (class gtm_transaction): Declare new and delete.
1836 * beginend.cc (alloc_tx): Reformulate as operator new.
1837 (free_tx): Reformulate as operator delete.
1838 * config/generic/tls.h (gtm_thread): Change free_tx member to void *.
1839
1840 2010-06-11 Richard Henderson <rth@redhat.com>
1841
1842 * clone.cc (clone_entry_compare): Fix typo.
1843 From Patrik Marlier <patrick.marlier@unine.ch>.
1844
1845 2010-05-13 Richard Henderson <rth@redhat.com>
1846
1847 * alloc_c.cc (_ITM_malloc, _ITM_calloc, _ITM_free): Wrap functions
1848 in extern "C".
1849
1850 2010-05-07 Aldy Hernandez <aldyh@redhat.com>
1851
1852 * libitm_i.h (struct gtm_transaction): Remove
1853 get_allocation_size.
1854 (record_allocation): Remove size parameter.
1855 * libitm.map (_ITM_realloc): Remove.
1856 * alloc_c.cc (_ITM_realloc): Remove.
1857 (_ITM_malloc): Remove size argument to record_allocation.
1858 (_ITM_calloc): Same.
1859 * alloc_cpp.cc (_ZGTtnwm): Same.
1860 (_ZGTtnwmRKSt9nothrow_t): Same.
1861 (_ZGTtnam): Same.
1862 (_ZGTtnamRKSt9nothrow_t): Same.
1863 * alloc.cc (struct gtm_alloc_action): Remove size.
1864 (get_allocation_size): Remove.
1865 (commit_allocations): Add comment.
1866 (record_allocation): Remove size parameter.
1867 (forget_allocation): Remove set of size.
1868
1869 2010-04-19 Aldy Hernandez <aldyh@redhat.com>
1870
1871 * Makefile.am (abi_version): New.
1872 (AM_CXXFLAGS): Pass abi_version.
1873 * Makefile.in: Regenerate.
1874 * config/x86/unaligned.h: Remove always_inline kludge for vectors.
1875
1876 2010-04-06 Aldy Hernandez <aldyh@redhat.com>
1877
1878 * clone.cc (_ITM_getTMCloneOrIrrevocable): Rename from
1879 _ITM_getTMCloneOrIrrevokable.
1880 * libitm.h (_ITM_getTMCloneOrIrrevocable): Same.
1881 * libitm.map (_ITM_getTMCloneOrIrrevocable): Same.
1882
1883 2010-03-26 Aldy Hernandez <aldyh@redhat.com>
1884
1885 * configure.ac: Remove Linux futex support.
1886 * configure.tgt (config_path): Same.
1887 * Makefile.am: Same.
1888 * config/linux: Remove entire directory.
1889 * configure: Rebuild.
1890 * Makefile.in: Rebuild.
1891 * testsuite/Makefile.in: Rebuild.
1892
1893 2010-03-09 Aldy Hernandez <aldyh@redhat.com>
1894
1895 * retry.cc (decide_retry_strategy): Set state to STATE_SERIAL when
1896 switching to serial mode.
1897 * beginend.cc (trycommit_and_finalize): Unlock serial_lock.
1898
1899 2010-03-03 Aldy Hernandez <aldyh@redhat.com>
1900
1901 * configure.tgt: Add emacs -*- tags.
1902 * barrier.tpl: Same.
1903
1904 2010-02-23 Aldy Hernandez <aldyh@redhat.com>
1905
1906 * Makefile.am: Rename serial.cc to method-serial.cc.
1907 * Makefile.in: Regenerate with automake 1.11.1.
1908 * testsuite/Makefile.in: Same.
1909 * aclocal.m4: Regenerate with aclocal 1.11.1.
1910 * method-serial.cc: Rename from serial.cc.
1911 * libitm_i.h (struct gtm_transaction): Update comment on
1912 serialirr_mode.
1913
1914 2010-02-22 Aldy Hernandez <aldyh@redhat.com>
1915
1916 * libitm_i.h (GTM_longjmp): Add ITM_REGPARM.
1917 * config/linux/rwlock.h (class gtm_rwlock): Add comments.
1918
1919 2010-02-11 Aldy Hernandez <aldyh@redhat.com>
1920
1921 * configure: Rebuild.
1922
1923 2009-11-12 Richard Henderson <rth@redhat.com>
1924
1925 * Rewrite everything in C++.
1926
1927 2009-11-03 Richard Henderson <rth@redhat.com>
1928
1929 * config/x86/x86_sse.c, config/x86/x86_avx.c: New files.
1930 * Makefile.am (libitm_la_SOURCES): Add them.
1931 * configure.ac (ARCH_X86): New conditional.
1932 * Makefile.in, configure: Rebuild.
1933 * configure.tgt: Set up ARCH; do cflags setup at the same time.
1934 Move futex setup into "other system configury" case.
1935 * local.c (rollback_local): Merge into ...
1936 (GTM_rollback_local): ... here.
1937 (GTM_LB): Rename from GTM_alloc_local; do the memcpy here.
1938 (_ITM_LB): Define as an alias to GTM_LB.
1939
1940 2009-11-03 Richard Henderson <rth@redhat.com>
1941
1942 * method-readonly.c: New file.
1943 * Makefile.am (libitm_la_SOURCES): Add it.
1944 * Makefile.in: Rebuild.
1945 * beginend.c (gtm_stmlock_array, gtm_clock): New.
1946 (GTM_begin_transaction): Use dispatch_readonly for read-only txn.
1947 * libitm_i.h (gtm_stmlock, gtm_version): Move from method-wbetl.c.
1948 (GTM_VERSION_MAX, GTM_VERSION_INVALID, gtm_stmlock_owned_p,
1949 gtm_stmlock_set_owned, gtm_stmlock_get_addr,
1950 gtm_stmlock_get_version, gtm_stmlock_set_version, LOCK_ARRAY_SIZE,
1951 gtm_stmlock_array, gtm_get_stmlock, gtm_clock, RESTART_NOT_READONLY,
1952 gtm_get_clock, gtm_inc_clock): New.
1953 * method-wbetl.c (gtm_version, gtm_stmlock, OWNED_MASK, VERSION_MAX,
1954 LOCK_GET_OWNED, LOCK_SET_ADDR, LOCK_GET_ADDR, LOCK_GET_TIMESTAMP,
1955 LOCK_SET_TIMESTAMP, LOCK_ARRAY_SIZE, LOCK_MASK, LOCK_IDX, GET_LOCK,
1956 locks, gclock, CLOCK, GET_CLOCK, FETCH_AND_INC_CLOCK): Remove and
1957 replace uses with new libitm_i.h symbols.
1958 (dispatch_wbetl): Rename from wbetl_dispatch.
1959 * retry.c (GTM_decide_retry_strategy): If RESTART_NOT_READONLY, move
1960 away from dispatch_readonly; abort if the beginTransaction call
1961 asserted that the transaction was readonly.
1962
1963 2009-11-03 Richard Henderson <rth@redhat.com>
1964
1965 * memset.c: New file.
1966 * Makefile.am (libitm_la_SOURCES): Add it.
1967 * Makefile.in: Rebuild.
1968 * testsuite/libitm.c/memset-1.c: New.
1969
1970 2009-11-03 Richard Henderson <rth@redhat.com>
1971
1972 * dispatch.c: Remove file.
1973 * useraction.c (struct gtm_user_action): Move from libitm.h.
1974 * serial.c (GTM_null_read_lock, GTM_null_write_lock): New.
1975 (serial_memset, serial_memmove, serial_memcpy): Remove.
1976 (serial_W*, serial_R*): Remove.
1977 (serial_dispatch): Update to match.
1978 * configure.ac: Move Werror down below configure checks. Don't
1979 check for sys/loadavg.h, do check for malloc.h. Don't check for
1980 getloadavg and clock_gettime; do check for memalign, posix_memalign.
1981 Use GCC_AC_FUNC_MMAP_BLACKLIST
1982 * libitm.h: Split out all internal items to...
1983 * libitm_i.h: ... here. New file.
1984 * copymask.c: New file.
1985 * local.c (struct gtm_local_undo): Move from libitm.h.
1986 (GTM_alloc_local): Rename from alloc_local; export.
1987 * memcpy.c: New file.
1988 * alloc_c.c (_ITM_realloc): Use _ITM_memcpyRnWt directly.
1989 * config/posix/page.c: New file.
1990 * config/posix/target_tls.h: Remove file.
1991 * barrier.c: New file.
1992 * Makefile.am (libitm_la_SOURCES): Add barrier.c, memcpy.c,
1993 copymask.c, page.c.
1994 * alloc.c (struct gtm_alloc_action): Move from libitm.h.
1995 * method-wbetl.c: Rewrite for new cacheline methods.
1996 * Makefile.in, configure, testsuite/Makefile.in, config.h.in: Rebuild.
1997
1998 * config/alpha/sjlj.S: Fix typo.
1999 * config/alpha/target_i.h: Copy functions from alpha/target.h.
2000 * config/alpha/copymask.c: New file.
2001 * config/alpha/target.h (CACHELINE_SIZE): New.
2002 (STRICT_ALIGNMENT, PAGE_SIZE, FIXED_PAGE_SIZE): New.
2003
2004 * config/x86/target_i.h: Copy functions from x86/target.h.
2005 * config/x86/copymask.c: New file.
2006 * config/x86/target.h (_ITM_ALL_TARGET_TYPES): Remove.
2007 (CACHELINE_SIZE, STRICT_ALIGNMENT): New.
2008 (PAGE_SIZE, FIXED_PAGE_SIZE): New.
2009 * config/x86/target_tls.h: Move contents to target_i.h.
2010
2011 * testsuite/libitm.c/clone-1.c: Include libitm.h.
2012 * testsuite/libitm.c/memcpy-1.c: New.
2013
2014 2009-10-22 Richard Henderson <rth@redhat.com>
2015
2016 * Makefile.am (CCAS, CCASFLAGS, LTCCASCOMPILE): Remove.
2017 (AM_CCASFLAGS): New.
2018 * configure.ac: Add AM_PROG_AS. Use m4_rename_force for
2019 saving/restoring _AC_ARG_VAR_PRECIOUS.
2020 * Makefile.in, aclocal.m4, config.h.in, configure,
2021 testsuite/Makefile.in: Rebuild with automake 1.11; autoconf 2.64.
2022
2023 2009-10-22 Richard Henderson <rth@redhat.com>
2024
2025 * testsuite/*: Update for new compiler syntax.
2026
2027 2009-10-21 Richard Henderson <rth@redhat.com>
2028
2029 * libitm.h (_ITM_abortReason): Add outerAbort.
2030
2031 2009-08-03 Richard Henderson <rth@redhat.com>
2032
2033 * libitm.map (_ITM_commitTransactionEH, _ITM_cxa_allocate_exception,
2034 _ITM_cxa_begin_catch, _ITM_cxa_end_catch, _ITM_cxa_throw): Export.
2035 * method-wbetl.c (struct w_entry): Remove mask.
2036 (wbetl_write, wbetl_load): Return pointer to word containing the data;
2037 adjust all callers.
2038
2039 2009-07-22 Richard Henderson <rth@redhat.com>
2040
2041 * eh_cpp.c: New file.
2042 * Makefile.am (libitm_la_SOURCES): Add it.
2043 * Makefile.in: Rebuild.
2044 * beginend.c (GTM_rollback_transaction): Undo exception state.
2045 (GTM_trycommit_transaction): Mark inline.
2046 (GTM_trycommit_and_finalize_transaction): Split out from ...
2047 (_ITM_commitTransaction): ... here.
2048 (_ITM_commitTransactionEH): New function.
2049 * libitm.h (struct gtm_transaction): Add cxa_catch_count,
2050 cxa_unthrown, eh_in_flight; reorder.
2051
2052 * testsuite/libitm.c++/c++.exp: New.
2053 * testsuite/libitm.c++/eh-1.C: New.
2054
2055 * aatree.c (aa_free): Remove REGPARM.
2056 * aatree.h: Remove all REGPARM.
2057
2058 2009-07-18 Richard Henderson <rth@redhat.com>
2059
2060 * aatree.c, aatree.h, alloc.c, alloc_c.c, alloc_cpp.c: New files.
2061 * Makefile.am (libitm_la_SOURCES): Add them.
2062 * Makefile.in: Rebuild.
2063 * beginend.c (GTM_rollback_transaction): Use GTM_commit_allocations.
2064 (GTM_trycommit_transaction): Likewise.
2065 * libitm.h: Include aatree.h
2066 (struct gtm_alloc_action): New.
2067 (struct gtm_transaction): Add alloc_actions.
2068 (GTM_record_allocation, GTM_forget_allocation): Declare.
2069 (GTM_get_allocation_size, GTM_commit_allocations): Declare.
2070 * libitm.map (_ITM_malloc, _ITM_calloc, _ITM_realloc, _ITM_free,
2071 _ZGTtnwm, _ZGTtnam, _ZGTtdlPv, _ZGTtdaPv, _ZGTtnwmRKSt9nothrow_t,
2072 _ZGTtnamRKSt9nothrow_t, _ZGTtdlPvRKSt9nothrow_t,
2073 _ZGTtdaPvRKSt9nothrow_t): Export.
2074
2075 2009-07-18 Richard Henderson <rth@redhat.com>
2076
2077 * target_tls.h: Move ...
2078 * config/posix/target_tls.h: ... here.
2079
2080 2009-07-07 Richard Henderson <rth@redhat.com>
2081
2082 * config/x86/target.h (atomic_write_barrier): Use sfence if available.
2083
2084 2009-07-07 Richard Henderson <rth@redhat.com>
2085
2086 * Update to GPL3.
2087
2088 2009-07-07 Richard Henderson <rth@redhat.com>
2089
2090 * libitm.h (struct gtm_transaction): Widen id to _ITM_transactionId_t.
2091 * beginend.c (global_tid): Widen to _ITM_transactionId_t.
2092
2093 * configure.tgt: Don't use -ftls-model for x86 linux.
2094 * libitm.h: Include target.h after standard includes.
2095 (_gtm_thr): Rename from gtm_thr.
2096 (setup_gtm_thr, gtm_thr, gtm_tx, set_gtm_tx): New.
2097 (gtm_disp, set_gtm_disp): New.
2098 * beginend.c, dispatch.c, local.c, method-wbetl.c, query.c,
2099 retry.c, serial.c, useraction.c: Use accessor functions throughout.
2100 * config/alpha/target_tls.h, config/x86/target_tls.h: New files.
2101
2102 2009-07-07 Richard Henderson <rth@redhat.com>
2103
2104 * config/linux/rwlock.c (EZ): New define. Use it throughout.
2105
2106 2009-07-06 Richard Henderson <rth@redhat.com>
2107
2108 * libitm.h (_ITM_SRCLOCATION_DECL_1, _ITM_SRCLOCATION_DECL_2): Remove.
2109 (_ITM_SRCLOCATION_DEFN_1, _ITM_SRCLOCATION_DEFN_2): Remove.
2110 (_ITM_beginTransaction): Take variadic arguments.
2111 (_ITM_registerThrownObject): Declare.
2112 * beginend.c, serial.c: Update.
2113 * libitm.map: Add _ITM_registerThrownObject.
2114
2115 2009-01-28 Richard Henderson <rth@redhat.com>
2116
2117 * Makefile.am (libitm_la_SOURCES): Add clone.c.
2118 * Makefile.in: Rebuild.
2119 * beginend.c (_ITM_abortTransaction): Abort if irrevokable.
2120 (GTM_restart_transaction): Fix uninstrumented code check.
2121 * retry.c (GTM_decide_retry_strategy): Add serial check.
2122 * serial.c (GTM_serialmode): Add irrevokable variable. Don't
2123 automatically go irrevokable when in serial mode.
2124 * clone.c: New file.
2125 * libitm.h, libitm.map: Update.
2126
2127 2009-01-27 Richard Henderson <rth@redhat.com>
2128
2129 * Makefile.am (LTCCASCOMPILE): Define.
2130 (libitm_la_SOURCES): Add methid-wbetl.c.
2131 * testsuite/Makefile.am: New
2132 * configure.ac: Add testsuite/Makefile.
2133 * Makefile.in, testsuite/Makefile.in, configure: Regenerate.
2134 * beginend.c (GTM_begin_transaction): Install wbetl_dispatch.
2135 (_ITM_abortTransaction): Finalize implementation method; pass
2136 transaction properties to longjmp.
2137 (GTM_restart_transaction): Split out from ...
2138 (_ITM_commitTransaction): ... here.
2139 * config/linux/x86/futex_bits.h (cpu_relax, atomic_write_barrier):
2140 Move to config/x86/target.h.
2141 * config/linux/alpha/futex_bits.h: New.
2142 * config/x86/sjlj.S (GTM_longjmp): Fix 64-bit input register.
2143 * config/x86/target.h: Disable target types for 32-bit.
2144 * config/alpha/sjlj.S, config/alpha/target.h: New.
2145 * libitm.h (struct gtm_dispatch): Add init, fini.
2146 (enum restart_reason): New.
2147 (struct gtm_transaction): Add method and restarts.
2148 * retry.c (GTM_decide_retry_strategy): Implement.
2149 * serial.c (serial_init, serial_fini): New.
2150 (GTM_serialmode): Finialize outgoing method.
2151 * method-wbetl.c: New.
2152
2153 2008-12-09 Richard Henderson <rth@redhat.com>
2154
2155 * config/x86/target.h (_ITM_ALL_TARGET_TYPES, _ITM_TYPE_ATTR): New.
2156 * configure.tgt (i386-*, x86_64-*): Don't force SSE.
2157 * dispatch.c (_ITM_##R##T, _ITM_##W##T): Use _ITM_TYPE_ATTR.
2158 * libitm.h (_ITM_ALL_TARGET_TYPES, _ITM_TYPE_ATTR): Provide default.
2159 (_ITM_TYPE_M64, _ITM_TYPE_M128, _ITM_TYPE_M256): Move to x86 header.
2160 (_ITM_ALL_TYPES): Use _ITM_ALL_TARGET_TYPES.
2161 * local.c (_ITM_L##T): Use _ITM_TYPE_ATTR.
2162 * serial.c (serial_R##T, serial_W##T): Likewise.
2163
2164 2008-11-21 Richard Henderson <rth@redhat.com>
2165
2166 * Initial commit.
2167 \f
2168 Copyright (C) 2008-2019 Free Software Foundation, Inc.
2169
2170 Copying and distribution of this file, with or without modification,
2171 are permitted in any medium without royalty provided the copyright
2172 notice and this notice are preserved.