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