This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/51771] New: trans-mem: abnormal edges get lost or corrupted
- 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: Thu, 05 Jan 2012 23:44:17 +0000
- Subject: [Bug rtl-optimization/51771] New: trans-mem: abnormal edges get lost or corrupted
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51771
Bug #: 51771
Summary: trans-mem: abnormal edges get lost or corrupted
Classification: Unclassified
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: torvald@gcc.gnu.org
CC: aldyh@gcc.gnu.org, rth@gcc.gnu.org
For each call to libitm we create an abnormal edge back to the transaction's
begin, which models that libitm could restart. Those edges seem to be intact
during the middle-end but get lost or corrupted somewhere after that. This
leads to miscompilation of STAMP Genome on x86_64, for example.
For 4.7, we can mark _ITM_beginTransaction as returns-twice. This seems to
work but isn't optimal, so we should fix the handling of abnormal edges for
4.8.