[Bug middle-end/55401] New: uninstrumented path in TM clones are still instrumented
aldyh at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Nov 19 21:51:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55401
Bug #: 55401
Summary: uninstrumented path in TM clones are still
instrumented
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: middle-end
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: aldyh@gcc.gnu.org
If a transaction appears in a TM clone, the uninstrumented path still gets
instrumented. Example:
int george;
int ringo;
__attribute__((transaction_callable))
void q1()
{
ringo=666;
__transaction_atomic {
george=999;
}
}
Generated code:
<bb 2>:
_8 = 666;
__builtin__ITM_WU4 (&ringo, _8);
tm_state.5_11 = __builtin__ITM_beginTransaction (43);
_12 = tm_state.5_11 & 2;
if (_12 != 0)
goto <bb 3>;
else
goto <bb 4>;
<bb 3>:
_13 = 999;
__builtin__ITM_WU4 (&george, _13);
__builtin__ITM_commitTransaction ();
goto <bb 5>;
<bb 4>:
_15 = 999;
__builtin__ITM_WU4 (&george, _15);
__builtin__ITM_commitTransaction ();
<bb 5>:
return;
More information about the Gcc-bugs
mailing list