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