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