[Bug middle-end/51752] New: trans-mem: publication safety violated
torvald at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 4 14:18:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51752
Bug #: 51752
Summary: trans-mem: publication safety violated
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: torvald@gcc.gnu.org
Created attachment 26238
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26238
publication safety test
Publication safety refers to transactions being able to safely publish data by
setting something like a shared flag (e.g., "data=23; __transaction_atomic {
flag = 1; }"). For that to work, programmers must access the data only if the
flag is true. Second, the compiler must preserve program order in this case
and is not allowed to reorder the two loads (i.e., load data before loading the
flag). Otherwise, there will be a race condition and the data load can return
an inconsistent value.
The attached test shows that this isn't working currently (e.g., look at
149t.optimized, the load of data is moved to out of the loop and before the
"flag" loads).
More information about the Gcc-bugs
mailing list