On Friday 25 March 2005 02:09, James E Wilson wrote:
> I tried it, it doesn't help.  It solves neither the loop invariant code
> motion problem nor the do-loop optimization problem.

As pointed out by Andrew Pinski, the do-loop transformation was in fact
not valid.  The rest of the slowdown looks like an RTL alias analysis
problem that, as far as I can tell, loop.c could not help fixing.  If
you make the .vars dump from GCC4 compilable, and you build that with
both GCC3 and GCC4, GCC4 (of course) performs as well (bad) as for the
original test case, and the GCC3 binary slows down to the same speed as
the GCC4 one (runtime of 16.4s with GCC3 vs. 16.7 for GCC4).  Usually,
this means IVopts did something that confuses the RTL alias analysis,
which is already just poor for ia64 anyway.

Gr.
Steven

Reply via email to