On Wed, Jul 28, 2004 at 09:50:11PM +0200, Angelo wrote: > Sure, but what can do optimization without using the *hardcoded* cpu > instructions inserted in the architecture ? 90% of the optimisation work is scheduling instructions - picking which one to use and how to lay them out. The actual instructions added by 486 and later are not much use. Essentially it adds bswap - which nothing uses except kernel net code cmov - which is now slower than avoiding it and a collection of locked operations that are great for threading and are a big reason glibc has a i686 version since it contains all the pthreads stuff. The kind of things that do matter are the choice of instructions - the compiler knows the relative performance of things like addl $1, %eax and incl %eax. It also knows how far apart to move instructions using the same register to avoid stalling the processor. This is where all the benefits come from and this is the 686 optimisation we turn on to get the best intel results (AMD re-orders so much that it doesnt seem to matter what its fed)