Take:
struct f{
float a;
float b;
float c;
float d;
};

struct f a;

void h(float, float, float, float);

void g(void)
{
  float a1 = a.a, b = a.b, c = a.c, d = a.d;
  a.a = a1;
  a.b = b;
  a.c = c;
  a.d = d;
  h(a1, b, c, d);
}
--- CUT ---
Currently only postreload will remove the store back to a.a, a.b, a.c, and a.d.
 Note this code orginally came from inlined code and was just reduced to this.
And if this was done before postreload, we don't need a fmr which was produced
by the register allocator.


-- 
           Summary: Only postreload will remove a no-op store
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pinskia at gcc dot gnu dot org


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

Reply via email to