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