From: Earnie B. <ear...@ya...> - 2003-04-04 12:07:34
|
Danny Smith wrote: > Hi > > Prior to gcc-3.0 all mingw tools were tuned to i386 cpu. This means that the > binaries would run on any i[3456]86 machine but were optimized for i386. > > The gcc3.x mingw gcc binaries and binutils tools have been tuned to i586. > This means that the binaries would run on any i[3456]86 machine but were > optimized for i586. There is not a big difference between i586 and i386-tuned > binaries. > > This has caused no problems. > > I propose that the default tuning now be set to i686(pentium pro). I've already begun this with mingw-runtime and w32api by using -mcpu=pentiumpro. > This means that the binaries will run on any i[3456]86 machine but will be > optimized for i686. One of the main differences between tuning for i586 and > lower and i686 is the use of mov ASM instructions rather than push. mov > instructions result in slightly bigger code, but are faster on i686 and above > because they can be run in a parallel. They still work, with marginal > performance hit, on i386. > How many i386 machines are running MinGW? My guess would be less than 1% if that many. > Regardless of the default tuning parameter, it can be overriden with a compile > -mcpu flag. (In the next round of gcc, the -mcpu sitch will be replaced > with/renamed to an -mtune switch to more accuarately describe what is doing, > but that is at least 9 months away.). > Good, I like the new name for the switch. :) > So my question: > Should mingw use i686 as default tuning (as cygwin has done for at least a year > with no problem reports, AFAICT)? This would start with gcc-3.3. Binutils > (which will soon bump to 2.14) would follow suite. > > How may people actually target i586 and lower machines? > My SWAG is: i386 < 1% i486 < 10% i586 < 30% i686 > 30% Earnie. |