------- Comment #36 from hubicka at gcc dot gnu dot org 2008-01-30 18:14 ------- Looking at the .optimized dump, one obvious problem is that we keep a lot of pointer arithmetic that should be forward propagated: <L147>:; D.184420 = *pz; p1 = pz + 8; D.184422 = *p1; p1 = p1 + 8; D.184424 = *p1; p1 = p1 + 8; D.184426 = *p1; p1 = p1 + 8; D.184428 = *p1; p1 = p1 + 8; D.184430 = *p1; p1 = p1 + 8; D.184432 = *p1; D.184434 = *(p1 + 8);
Those seems to be all just array manipulations. Honza -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17863