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