]> git.ipfire.org Git - thirdparty/gcc.git/blame - libitm/ChangeLog
Prevent recursive instantiation in std::function
[thirdparty/gcc.git] / libitm / ChangeLog
CommitLineData
21fa2a29
JJ
12016-01-04 Jakub Jelinek <jakub@redhat.com>
2
818ab71a
JJ
3 Update copyright years.
4
21fa2a29
JJ
5 * libitm.texi: Bump @copying's copyright year.
6
e7f7330f
TR
72015-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
4f8a3b87
TR
132015-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
258c1d07
TR
182015-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
c518678b
TR
442015-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
1e44e857
DJ
582015-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
9e531d37
DM
672015-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
c629c246
GFM
722015-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
cd5a9a74
CSLL
782015-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
ea023bcf
UB
832015-05-27 Uros Bizjak <ubizjak@gmail.com>
84
d778b5a0
UB
85 * config/linux/x86/futex_bits.h (sys_futex0) [__x86_64__]: Change
86 operands "op" and "val" to int.
87
882015-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
932015-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
982015-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
1052015-05-27 Uros Bizjak <ubizjak@gmail.com>
106
107 * config/linux/x86/futex_bits.h (sys_futex0) [__PIC__]: Remove
108 sys_futex0 function.
ea023bcf 109
503902f9
MH
1102015-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
96ce40cb
GR
1172015-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
3a07b160
L
1222015-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
5624e564
JJ
1282015-01-05 Jakub Jelinek <jakub@redhat.com>
129
130 Update copyright years.
131
b67cd4e3
JJ
1322015-01-05 Jakub Jelinek <jakub@redhat.com>
133
134 * libitm.texi: Bump @copying's copyright year.
135
69aef6dc
KT
1362014-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
68bc9270
UB
1412014-12-03 Uros Bizjak <ubizjak@gmail.com>
142
143 * configure.tgt (x86_64): Tune -m32 multilib to generic.
144
a699d672
L
1452014-11-21 H.J. Lu <hongjiu.lu@intel.com>
146
147 PR bootstrap/63784
148 * configure: Regenerated.
149
ebf6d33b
FXC
1502014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
151
152 PR target/63610
153 * configure: Regenerate.
154
99183741
MP
1552014-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
b6334cf4
RH
1602014-07-24 Richard Henderson <rth@redhat.com>
161
162 * config/aarch64/sjlj.S (_ITM_beginTransaction): Use post-inc
163 addressing mode in epilogue.
164
3c698bf0
RO
1652014-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
dbed5a9b
JM
1722014-05-21 John Marino <gnugcc@marino.st>
173
174 * configure.tgt (*-*-dragonfly*): New target.
175
b17f08dd
RH
1762014-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
5e1f630a
RO
1822014-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
84c2f4b0
RH
1872013-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
7cc51d64
JJ
1932014-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
c288ec8f
JM
1992014-03-26 Joseph Myers <joseph@codesourcery.com>
200
201 * libitm.texi (Index): Rename to Library Index.
202
ed100f5d
L
2032014-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
f93608e6
RS
2102014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
211
212 Update copyright years
213
98db73df
TB
2142014-01-02 Tobias Burnus <burnus@net-b.de>
215
216 * libitm.texi: Bump @copying's copyright year.
217
b54214fe
UW
2182013-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
3cbe17f7
AM
2282013-09-20 Alan Modra <amodra@gmail.com>
229
230 * configure: Regenerate.
231
6fb471d8
TR
2322013-08-30 Torvald Riegel <triegel@redhat.com>
233
234 * config/posix/rwlock.cc: Fix initialization order.
235
bec9ec3f
TR
2362013-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
1869217f
AK
2522013-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
d62d5152
AK
2582013-08-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
259
260 * configure.tgt: Add -msoft-float to XCFLAGS.
261
aaaffb2a
AK
2622013-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
167f68ed
AK
2692013-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
0258b6e4
PB
2782013-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
5a3fe9b6
AK
2932013-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
6c84d576
IS
3002013-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
480c696b
TR
3082013-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
b1db457b
TR
3142013-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
51249377
GP
3202013-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
f818478b
JJ
3322013-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
ab4425be
AK
3382013-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
6c59ffd1
IS
3472013-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
75f9527c
RS
3552013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
356
357 Update copyright years.
358
64fbcc74
TR
3592012-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
b9efc877
TS
3762012-11-04 Thomas Schwinge <thomas@codesourcery.com>
377
378 * configure: Regenerate.
379
07d3b5c8
RH
3802012-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
eb00e959
TR
3872012-10-24 Torvald Riegel <triegel@redhat.com>
388
389 * libitm.texi: Clarify ABI requirements for data-logging functions.
390
b679c813
TR
3912012-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
0c609a21
UB
4042012-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
c0758df9
JJ
4102012-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
690c45b8
DE
4172012-09-14 David Edelsohn <dje.gcc@gmail.com>
418
419 * configure: Regenerated.
420
68a12ef3
UB
4212012-07-31 Uros Bizjak <ubizjak@gmail.com>
422
423 * config/x86/target.h (cpu_relax): Use __builtin_ia32_pause.
424
f2f9a097
PM
4252012-05-21 Patrick Marlier <patrick.marlier@gmail.com>
426
427 * eh_cpp.cc: Fix __cxa_end_catch declaration.
428
e6d5f8c9
L
4292012-05-16 H.J. Lu <hongjiu.lu@intel.com>
430
431 * configure: Regenerated.
432
0100e3b3
L
4332012-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
2f6935f4
TG
4392012-04-03 Tristan Gingold <gingold@adacore.com>
440
441 * configure: Regenerate.
442
b9c23a61
L
4432012-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
6a26a74d
BRF
4482012-03-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
449
450 * testsuite/lib/libitm.exp: load fortran-modules.exp
451
b24513a1
RO
4522012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
453
454 * configure.tgt (*-*-irix6*): Remove.
455
0d23faac
TR
4562012-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
5c30094f
RO
4622012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
463
464 * configure.tgt (*-*-osf*): Remove.
465 * configure: Regenerate.
466
d28b0b08
TR
4672012-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
034209bc
TR
4722012-03-02 Torvald Riegel <triegel@redhat.com>
473
474 * libitm.texi: Link to specification and add a usage example.
475
bc8da6ba
TR
4762012-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
63b08143
TR
4812012-02-20 Torvald Riegel <triegel@redhat.com>
482
483 * method-gl.cc (gl_wt_dispatch::orec): Put on separate cacheline.
484
4c9bd6ac
TR
4852012-02-20 Torvald Riegel <triegel@redhat.com>
486
487 * method-gl.cc (gl_wt_dispatch::rollback): Optimize memory orders.
488
651ff415
TR
4892012-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
efee0113
TR
4952012-02-20 Torvald Riegel <triegel@redhat.com>
496
497 * method-gl.cc (gl_wt_dispatch::pre_write): Optimize memory orders.
498
33a03827
TR
4992012-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
a19db3f2
TR
5042012-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
e948a1fb
IS
5162012-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
72824d5e
RH
5232012-02-14 Richard Henderson <rth@redhat.com>
524
525 * config/x86/target.h (GTM_longjmp): Correct the .cfi corrections.
526
1f319dba
UB
5272012-02-14 Uros Bizjak <ubizjak@gmail.com>
528
529 * config/x86/target.h (GTM_longjmp): Correct .cfi directives.
530
31772c95
TR
5312012-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
5b9cf5d2
TR
5412012-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
7d33bcb7
TR
5492012-02-14 Torvald Riegel <triegel@redhat.com>
550
551 * util.cc (GTM::xcalloc): New.
552 * common.h (GTM::xcalloc): Declare.
553
62513f7b
EB
5542012-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
5592012-02-14 Uros Bizjak <ubizjak@gmail.com>
d4a698d4
UB
560
561 * config/x86/target.h (GTM_longjmp): Jump indirect from memory address.
562
f3f5e3c3
EB
5632012-02-13 Eric Botcazou <ebotcazou@adacore.com>
564
62513f7b 565 * configure.tgt (target_cpu): Handle sparc and sparc64/sparcv9.
f3f5e3c3
EB
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
5712012-02-13 Eric Botcazou <ebotcazou@adacore.com>
255a9a1b
EB
572
573 * configure.ac (link_itm): Fix comment.
574 * configure: Regenerate.
575 * testsuite/lib/libitm.exp: Do not pass -litm for the link.
576
681355e3
RO
5772012-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
578
fc985d2f 579 PR libitm/51822
62513f7b 580 * testsuite/libitm.c++/c++.exp (lang_link_flags): Add -shared-libgcc.
681355e3
RO
581 Correct libgomp references.
582
999bcff5
TR
5832012-01-24 Torvald Riegel <triegel@redhat.com>
584
585 * config/linux/rwlock.cc (GTM::gtm_rwlock::write_unlock): Fix reader
586 wake-up.
587
9848887a
UB
5882012-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
5752c591
UB
5972012-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
61e72ca4
RO
6032012-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
9ce91011
RO
6082012-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
3b4f05ec
RO
6192012-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
aab74ee9
TR
6252012-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
07b6642b
TR
6312012-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
8377e5e5
RH
6432012-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
11f30bb0
TR
6492012-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
a32e5e93
RH
6682012-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
1f53a8e6
AH
6782012-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().
be223aaf 683 From Patrik Marlier <patrick.marlier@gmail.com>.
1f53a8e6 684
c898f7b8
TR
6852011-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
610e3901
TR
6902011-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
799142bf
TR
7052011-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
b0f96e35
JJ
7342011-12-21 Jakub Jelinek <jakub@redhat.com>
735
736 * Makefile.am (AM_CXXFLAGS): Put $(XCFLAGS) first.
737 * Makefile.in: Regenerated.
738
cc163247
KK
7392011-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
aebac0ca
RH
7462011-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
36cfbee1
RH
7602011-12-13 Richard Henderson <rth@redhat.com>
761
5d9d05d3
RH
762 * config/posix/rwlock.cc (gtm_rwlock::write_lock_generic): Fix
763 signed/unsigned comparison werror.
764
36cfbee1
RH
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
062f93f2
RH
7862011-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
bd8aaa86
IS
7942011-11-23 Iain Sandoe <iains@gcc.gnu.org>
795
796 * Makefile.am (libitm_la_LDFLAGS): Remove "-no-undefined".
797 * Makefile.in: Regenerate.
798
8cf36bb3
IS
7992011-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
0b41ebef
IS
8112011-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.
8cf36bb3 815 (TYPE, SIZE, HIDDEN): New macros to assist on non-elf targets.
0b41ebef
IS
816 (_ITM_beginTransaction): Use SYM, TYPE, SIZE macros to assist
817 in portability to non-elf targets.
8cf36bb3 818 (GTM_longjmp): Likewise.
0b41ebef
IS
819 * libitm_i.h (begin_transaction): Apply __USER_LABEL_PREFIX__
820 where required.
821
9c9d352a
IS
8222011-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
c6084f68
AT
8272011-11-21 Andreas Tobler <andreast@fgznet.ch>
828
829 * configure: Regenerate.
830
adcd36bc
RO
8312011-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
59659b59
RO
8402011-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
d846e425
RO
8482011-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
80713347
UB
8562011-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
2841f85e
L
8622011-11-14 H.J. Lu <hongjiu.lu@intel.com>
863
864 * testsuite/lib/libitm.exp: Check ia32 instead of ilp32.
865
8851b429
RO
8662011-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
d4b17902
RH
8782011-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
430616e7
RH
8852011-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
79b1edb6
RH
8922011-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
4bdd090f
RH
9152011-11-09 Richard Henderson <rth@redhat.com>
916
8ee9fac2
RH
917 * config/x86/cacheline.h (gtm_cacheline::store_mask): Use .byte
918 to emit branch prediction hint.
919
9bdc6343
RH
920 * config/x86/sjlj.S: Protect elf directives with __ELF__.
921 Protect .note.GNU-stack with __linux__.
922
4bdd090f
RH
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
4408b086
RH
9282011-11-08 Richard Henderson <rth@redhat.com>
929
930 * local.cc (_ITM_LB): Use a normal call, not a function alias.
931
01f3428c
RH
9322011-11-08 Richard Henderson <rth@redhat.com>
933
3d3b05ff
RH
934 * configure.tgt: Test correct directory for supported cpus.
935
01f3428c
RH
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
07f03cd3
RO
9412011-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
0a35513e
AH
9492011-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
9772011-11-04 Torvald Riegel <triegel@redhat.com>
978
979 * libitm.texi: No cover text and invariant sections.
980
9812011-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
9862011-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
9942011-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
10032011-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
10092011-11-03 Aldy Hernandez <aldyh@redhat.com>
1010
1011 * testsuite/libitm.c/reentrant.c: XFAIL.
1012 * testsuite/libitm.c++/static_ctor.C: XFAIL.
1013
10142011-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
10242011-10-19 Torvald Riegel <triegel@redhat.com>
1025
1026 * testsuite/*: Change __transaction to __transaction_atomic or
1027 __transaction_relaxed.
1028
10292011-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
10342011-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
10422011-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
10502011-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
10602011-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
10662011-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
10712011-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
10762011-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
10862011-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
11152011-08-23 Torvald Riegel <triegel@redhat.com>
1116
1117 * config/x86/tls.h: Moved to ...
1118 * config/linux/x86/tls.h: ... here.
1119
11202011-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
11262011-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
11462011-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
11792011-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
11992011-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
12082011-08-12 Torvald Riegel <triegel@redhat.com>
1209
1210 * testsuite/libitm.c++/static_ctor.C: New file.
1211
12122011-08-12 Torvald Riegel <triegel@redhat.com>
1213
1214 * testsuite/libitm.c/reentrant.c: New file.
1215
12162011-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
12262011-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
12312011-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
12382011-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
12462011-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
12522011-07-28 Torvald Riegel <triegel@redhat.com>
1253
1254 * beginend.cc (GTM::gtm_transaction::rollback): Fix nesting level
1255 rollback.
1256
12572011-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
12652011-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
12902011-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
12952011-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
13022011-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
13122011-07-28 Torvald Riegel <triegel@redhat.com>
1313
1314 * libitm.h (_ITM_codeProperties): Change pr_hasElse to the ABI's value.
1315
13162011-07-28 Torvald Riegel <triegel@redhat.com>
1317
1318 * aatree.h (aa_tree::remove): New.
1319 (aa_tree::operator new): Add placement new.
1320
13212011-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
13302011-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
13412011-06-30 Torvald Riegel <triegel@redhat.com>
1342
1343 * libitm.texi: New file.
1344 * Makefile.am: Add libitm.texi.
1345 * Makefile.in: Rebuild.
1346
13472011-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
13722011-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
13792011-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
13972011-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
14022011-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
14122010-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
14202010-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
14282010-12-14 Richard Henderson <rth@redhat.com>
1429
1430 * config/x86/tls.h: New file.
1431
14322010-07-15 Richard Henderson <rth@redhat.com>
1433
1434 * Makefile.am (AM_CXXFLAGS): Add -funwind-tables.
1435 * Makefile.in: Rebuild.
1436
14372010-07-13 Aldy Hernandez <aldyh@redhat.com>
1438
1439 * method-wbetl.cc (trydropreference): Fix source line.
1440
14412010-07-13 Aldy Hernandez <aldyh@redhat.com>
1442
1443 * libitm.h: Add comment.
1444 * libitm_i.h (begin_transaction): Add ITM_REGPARM.
1445
14462010-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
14552010-07-06 Aldy Hernandez <aldyh@redhat.com>
1456
1457 * libitm.h (ITM_PURE): Define.
1458 Declare _ITM_malloc, _ITM_calloc, and _ITM_free.
1459
14602010-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
14732010-06-28 Aldy Hernandez <aldyh@redhat.com>
1474
1475 * memcpy.cc (do_memcpy): Comment.
1476
14772010-06-25 Aldy Hernandez <aldyh@redhat.com>
1478
1479 * barrier.tpl: Add comments throughout.
1480
14812010-06-24 Aldy Hernandez <aldyh@redhat.com>
1482
1483 * method-wbetl.cc (struct w_entry): Add comments.
1484 (trycommit): Same.
1485 (rollback): Same.
1486
14872010-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
14972010-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
15052010-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
15112010-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
15292010-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
15382010-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
15432010-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
15482010-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
15672010-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
15742010-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
15812010-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
15912010-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
15972010-03-03 Aldy Hernandez <aldyh@redhat.com>
1598
1599 * configure.tgt: Add emacs -*- tags.
1600 * barrier.tpl: Same.
1601
16022010-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
16122010-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
16172010-02-11 Aldy Hernandez <aldyh@redhat.com>
1618
1619 * configure: Rebuild.
1620
16212009-11-12 Richard Henderson <rth@redhat.com>
1622
1623 * Rewrite everything in C++.
1624
16252009-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
16382009-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
16612009-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
16682009-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
17122009-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
17212009-10-22 Richard Henderson <rth@redhat.com>
1722
1723 * testsuite/*: Update for new compiler syntax.
1724
17252009-10-21 Richard Henderson <rth@redhat.com>
1726
1727 * libitm.h (_ITM_abortReason): Add outerAbort.
1728
17292009-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
17372009-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
17562009-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
17732009-07-18 Richard Henderson <rth@redhat.com>
1774
1775 * target_tls.h: Move ...
1776 * config/posix/target_tls.h: ... here.
1777
17782009-07-07 Richard Henderson <rth@redhat.com>
1779
1780 * config/x86/target.h (atomic_write_barrier): Use sfence if available.
1781
17822009-07-07 Richard Henderson <rth@redhat.com>
1783
1784 * Update to GPL3.
1785
17862009-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
18002009-07-07 Richard Henderson <rth@redhat.com>
1801
1802 * config/linux/rwlock.c (EZ): New define. Use it throughout.
1803
18042009-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
18132009-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
18252009-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
18512008-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
18622008-11-21 Richard Henderson <rth@redhat.com>
1863
1864 * Initial commit.
21fa2a29
JJ
1865\f
1866Copyright (C) 2008-2016 Free Software Foundation, Inc.
1867
1868Copying and distribution of this file, with or without modification,
1869are permitted in any medium without royalty provided the copyright
1870notice and this notice are preserved.