This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: rtlopt loop unroller question
- From: Toon Moene <toon at moene dot indiv dot nluug dot nl>
- To: Roger Sayle <roger at eyesopen dot com>
- Cc: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>, gcc at gcc dot gnu dot org, Yossi Markovich <YOSSIM at il dot ibm dot com>, Dorit Naishlos <DORIT at il dot ibm dot com>, Andreas Jaeger <aj at suse dot de>
- Date: Wed, 22 Oct 2003 23:38:50 +0200
- Subject: Re: rtlopt loop unroller question
- Organization: Moene Computational Physics, Maartensdijk, The Netherlands
- References: <Pine.LNX.4.44.0310220837200.20729-100000@www.eyesopen.com>
Roger Sayle wrote:
On Wed, 22 Oct 2003, Zdenek Dvorak wrote:
As I suspected, my favourite piece of cse strikes again.
With the patch below, the code produced is much better:
I've also been curious about the benefits of this piece of CSE.
It would be nice to get some benchmarking of your patch on several
platforms, and if things don't get significantly worse, remove this
section of code entirely.
What do others think?
What I do not understand is why this part of the compiler thinks that:
LD Rx,<const>(Ay)
ADD 2^N,Ay ! sizeof(LD access) = 2^N
can be replaced by
LD Rx,<const>(Ay)+ ! Using autoincrement
By far the most architectures that do support autoincrement/decrement do
not do so when the address register is offset ...
But presumably I'm missing something here.
--
Toon Moene - mailto:toon@moene.indiv.nluug.nl - phoneto: +31 346 214290
Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
Maintainer, GNU Fortran 77: http://gcc.gnu.org/onlinedocs/g77_news.html
GNU Fortran 95: http://gcc.gnu.org/fortran/ (under construction)