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