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: unassig...@gcc.gnu.org
        ReportedBy: torv...@gcc.gnu.org
                CC: al...@gcc.gnu.org, r...@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.

Reply via email to