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