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.
Actually, the big ones are MMX/MMXEXT/SSE-{1,2,3}. In particular sse2, since sse2 can be used for all floating-point (-msse2 -mfpmath=sse), and on some CPUs it can be 2x or more faster than using x87.
-hpa