i486 base architecture

Pekka Pietikainen pp at ee.oulu.fi
Sun Nov 28 23:46:50 UTC 2004


On Sun, Nov 28, 2004 at 05:54:43PM -0500, Jeff Spaleta wrote:
> On Sun, 28 Nov 2004 17:47:35 -0500, William M. Quarles 
> > What kind of pain are we talking about here?
> just as importantly... what kind of gain do you expect to see?
> Since the issue raised was gain to pain.... is there really any useful
> gain in moving to i486 as the base arch?
Indeed:

http://www.ee.oulu.fi/~pp/faqentry

(submitted to the fedora faq some time ago, didn't hear anything back and it's
potentially a bit too complex for that context).

For the instruction set bits, 
Chapter 17 of http://www.intel.com/design/pentiumii/manuals/243192.htm
has details on the instruction set differences between the different x86
iterations.

Just some ballpark figures on how often gcc gets to use these instructions, 
and this is glibc which might have used these in handcoded assembly:
(objdump --disassemble /lib/i686/libc.so.6 | grep <instruction> |wc -l )

cpmxchg:7
xadd: 8
bswap: 136
cmov: 1099 (and this already limits us to non-VIA C3 i686)
Total lines: 297992

Doesn't take into account how often this code is called and how much slower 
the i386 instruction set alternative is in reality. My guess is
"unmeasurable".

Someone feel like doing an experiment on some real code, glibc isn't really
representative of typical code? Just compile some large package
with different -march= options (keeping mtune at pentium4) and see what
non-i386 instructions it actually generates. Bonus points for listing 
the functions and showing whether they are in the oprofile/gprof top #10
or not.

-- 
Pekka Pietikainen




More information about the devel mailing list