Messages in this thread | | | Date | Wed, 20 Jul 2005 10:29:52 -0400 | From | Dave Neuer <> | Subject | Re: Noob question. Why is the for-pentium4 kernel built with -march=i686 ? |
| |
On 7/20/05, Simon Strandman <simon.strandman@telia.com> wrote: > Denis Vlasenko skrev: > > > > >Why do you care? I bet that differences between i686 code and pentium4 code > >are well below noise level. > >-- > >vda > > > For x86_64 the flags -mno-sse -mno-mmx -mno-sse2 -mno-3dnow are always > used for compilation. Why is'nt the same thing done for x86 instead of > using -march=i686 -mtune=?. > > -march=athlon and -march=k6 includes -m3dnow and -mmmx, are those ok for > the kernel but -msse isn't? >
As Kerin pointed out, gcc 4.0 supports auto-vectorization, so in theory, these options might provide better performance on some compilers. Apparently SSE is not enabled by default any more for P4 because of a known bug w/ some compilers. People using gcc > 4.0 can obviously override it.
Really, w/out the presence of auto-vectorization support in the compiler none of the vector extensions are necessary. The only things that really matter are -mcpu and -mtune: what instruction set your CPU supports and the optimum instruction scheduling characteristics for your CPU, respectively.
Dave - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |