This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Serious performance regression -- some tree optimizer questions
- From: Ulrich Weigand <Ulrich dot Weigand at de dot ibm dot com>
- To: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- Cc: Zdenek Dvorak <dvorakz at suse dot de>, gcc at gcc dot gnu dot org, Michael Matz <matz at suse dot de>
- Date: Wed, 29 Dec 2004 15:45:31 +0100
- Subject: Re: Serious performance regression -- some tree optimizer questions
Hello Zdenek,
>> > yes, I plan to do this now.
>
>here is the patch.
Many thanks, the loop optimizer now indeed recognizes that
it can promote all relevant induction variables to the wider
mode.
Together with --param iv-consider-all-candidates-bound=100
I'm now getting quite good code for the resid routine.
The reason why I still need that param appears to be that
ivopts does not recognize that an IV like &A[i] is related
to a use like &A[i+1]. It appears that add_address_candidates
would be supposed to handle this, but it doesn't -- it only
sees though array references with a constant offset, not those
with an offset that itself has a variable and a constant part.
I've tried to add code recognizing that case there, but then
the candidates still aren't chosen because they get assigned
very high cost; this is because fold-const is unable to
determine that &A[i+1] - &A[i] is a constant ...
Mit freundlichen Gruessen / Best Regards
Ulrich Weigand
--
Dr. Ulrich Weigand
Linux for S/390 Design & Development
IBM Deutschland Entwicklung GmbH, Schoenaicher Str. 220, 71032 Boeblingen
Phone: +49-7031/16-3727 --- Email: Ulrich.Weigand@de.ibm.com