Subject: Re: shocking speed performance!
To: Bruce Martin <BruceM@cat.co.za>
From: None <kim@pvv.ntnu.no>
List: port-arm32
Date: 05/20/1999 09:24:13
> Can anyone explain to me why the Strongarm takes so much
> longer than the Pentium to run this code? Surely it should
> run in the same range, if not faster. By the way, the
> Pentium II 266 version was only compiled with the -m486
> option, so no special PII optimization was used...

It is because of the pitiful pessimizer of GCC.

I encountered the same problem when I worked with partial
differential equations with finite difference methods.

The StrongARM has a beautiful pipelined structure, which makes
it possible to execute an instruction every clockcycle, even when
the instruction takes several clockcycles, such as memory access
and multiplication. To achieve this high speed, one can let the 
processor do other instructions while the slower instructions
complete.

GCC makes the worst out of this. It typically puts instructions
depending on the slow instructions immediately after the slow
instructions in the code, even when it is not necessary.

It has always been that way, and I guess it will continue to be like
that, just like NetBSD ARM32 always has been barely working and quite
uncompilable. I am now the happily owner of a Linux twin Celeron
system. The reason I still read this maillist is that my unsubscribe
request did not work.

Kim0