Using various machine settings as a way to improve performance is a
common topic on Linux kernel discussion lists. The summary though from
what I've read is that for almost all cases the various tunings between
i386 and i686 SSE rarely make any appreciable difference at all. A few
specific cases for atomic operations and 64-bit math do exist but they
aren't heavily used enough to matter.
The Mozilla team came to a similar conclusion, that architecture
optimization delivered nothing except incompatibility. They have
actually switched to using code size optimization for most of the source
base (resulting in a 3-5% reduction in executable size). They showed
that having more code in the cache beat a speed optimized version in
their standard test suites. Speed optimizations are used only for a few
key routines. In some cases they recoded these routines so that they
generated the almost the same code with or without optimization so as to
get performance benefits on all supported platforms.
Anders Broman wrote:
Would we get any performance gain by switching to /MACHINE:I686?
As we are no longer suporting older Windows versions there is no need to
suport I386 I suppose…