http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45970

           Summary: tree DSE misses many obvious dead stores
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: ja...@gcc.gnu.org


struct A { char c[4]; } a, b;

void
f1 (void)
{
  __builtin_memcpy (&a.c[0], "a", 1);
  a = b;
}

void
f2 (void)
{
  __builtin_memcpy (&a.c[0], "a", 1);
  __builtin_memcpy (&a.c[0], "cdef", 4);
}

isn't optimized by tree DSE.  RTL DSE can handle it, but only on some targets
(there are issues with calls to builtins if they were expanded as calls and
args aren't in registers etc.).

Reply via email to