There is an obvious redundant LOAD in the in the following code ( (*) line):

void f (int n, int *cond, int *res)
{
    int i;
    *res = 0;
    for (i = 0; i < n; i++)
        if (*cond)
            *res ^= 234; /* (*) */
}

GCSE LAS (load after store) catches it in RTL stage but it should be catched by
PRE in TreeSSA stage.


-- 
           Summary: TreeSSA-PRE load after store misoptimization
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: sergeid at il dot ibm dot com
 GCC build triplet: powerpc
  GCC host triplet: powerpc
GCC target triplet: powerpc


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

Reply via email to