compilation architecture

Alan Cox alan at
Mon Jan 14 20:38:01 UTC 2008

On Mon, Jan 14, 2008 at 02:14:02PM -0600, Callum Lerwick wrote:
> using OpenJPEG's MJ2 tools, I encode the speedway example using
> "frames_to_mj2 -i Speedway.yuv -o Speedway.mj2 -I 1", then decode it.

Which is about the most extreme case you will find.

> So it is 0.54% *slower* when compiled for i586, which is unexpected and
> strange, but such is gcc. I wouldn't expect much of a speed difference
> compiling for i586, there was no major additions to the instruction set,
> and we're already scheduling for modern processors.

586 has completely different scheduling pipelines wiht complex rules

> Not quite "three times" faster, but 3.26% faster with i686. A major
> addition to the i686 architecture was cmov, and gcc is actually very

Current CPUs cmov is generally a lose.

> both i386 and i686 versions. glibc and openssl already do this. Off the
> top of my head, this would include Mesa, I know for a fact the majority

Mesa already internally uses things like 3DNow. The Mesa folks would
I'm sure welcome more optimised paths and cpu tuned variants.

> all the help it can get. Not that the MPEG4 codecs are in Fedora
> itself...

MPEG4 is dominated by memory bandwidth so cache size is critical and
FSB, not compiler options.

Memory actually dominates most things today - and -Os is often the macro
scale win

More information about the devel mailing list