This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libitm/51855] improve calculation of stack bottom in libitm's undolog
- From: "torvald at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 13 Jan 2012 23:45:12 +0000
- Subject: [Bug libitm/51855] improve calculation of stack bottom in libitm's undolog
- Auto-submitted: auto-generated
- References: <bug-51855-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51855
--- Comment #2 from torvald at gcc dot gnu.org 2012-01-13 23:45:12 UTC ---
Author: torvald
Date: Fri Jan 13 23:45:06 2012
New Revision: 183172
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=183172
Log:
libitm: Filter out undo writes that overlap with the libitm stack.
PR libitm/51855
* config/generic/tls.h (GTM::mask_stack_top): New.
(GTM::mask_stack_bottom): Declare.
* config/generic/tls.c (GTM::mask_stack_bottom): New.
* local.cc (gtm_undolog::rollback): Filter out any updates that
overlap the libitm stack. Add current transaction as parameter.
* libitm_i.h (GTM::gtm_undolog::rollback): Adapt.
* beginend.cc (GTM::gtm_thread::rollback): Adapt.
* testsuite/libitm.c/stackundo.c: New test.
Added:
trunk/libitm/testsuite/libitm.c/stackundo.c
Modified:
trunk/libitm/ChangeLog
trunk/libitm/beginend.cc
trunk/libitm/config/generic/tls.cc
trunk/libitm/config/generic/tls.h
trunk/libitm/libitm_i.h
trunk/libitm/local.cc