[Bug rtl-optimization/30697] New: Local arrays not eliminated by optimization

stefaan dot deroeck at gmail dot com gcc-bugzilla@gcc.gnu.org
Sat Feb 3 22:43:00 GMT 2007


Tested with gcc-4.2-20070131, with -O3 on i386.  Gcc correctly writes the
constants directly into the variable called "out", but it still stores its
temporary result on the stack, from where it will never be read anymore.  

gcc-4.1.1 DOES seem to eliminate these arrays, at least in the given example.
Don't know if that qualifies as regression though...
gcc-4.3-20070202 behaves the same as gcc-4.2-20070131. 

void test(int * out) {
  for (int j=0; j<4; ++j) {
    int tmp[4];
    for (int i=0; i<4; ++i) tmp[i] = i;
    for (int i=0; i<4; ++i) out[i] = tmp[i];
  }
}


-- 
           Summary: Local arrays not eliminated by optimization
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: stefaan dot deroeck at gmail dot com


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



More information about the Gcc-bugs mailing list