ChangeLog 60 KB

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