[Bug middle-end/28690] [4.2 Regression] Performace problem with indexed load/stores on powerpc
bergner at vnet dot ibm dot com
gcc-bugzilla@gcc.gnu.org
Fri Sep 22 16:30:00 GMT 2006
------- Comment #12 from bergner at vnet dot ibm dot com 2006-09-22 16:30 -------
Anton dicovered that we don't get multiple dimensioned arrays like the
following test case:
int indexedload(int ***base, int idx0, int idx1, int idx2)
{
return base[idx0][idx1][idx2];
}
This one leads to 3 indexed loads. We transform the first indexed load ok, but
the other two we don't. I tracked that down to force_reg (called from
break_out_memory_refs) doesn't propagate the MEM_POINTER flag to a REG_POINTER
flag on the reg it creates. I posted/commited a fix which was approved:
http://gcc.gnu.org/ml/gcc-patches/2006-09/msg00941.html
We now successfully transform all of the indexed loads in this test case now.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28690
More information about the Gcc-bugs
mailing list