Re: Choosing the right -march target architecture

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/09/2015 13:25, Jonathan Wakely wrote:

> This is no different to just using -mtune several times:
> 
> -mtune=pentiumpro -mtune=pentium3 -mtune=pentiumpro
> 
> The last such option will be used.
> 
> Specifying march=arch implies -mtune=arch, but a later -mtune will
> override it, just like it will override any explicit uses of -mtune
> that came earlier.

Thanks for the clarification, Jonathan.

I noticed something strange in gcc -v output:

$ gcc -v -c foo.c
...
gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) 
COLLECT_GCC_OPTIONS='-v' '-c' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.8/cc1 -quiet -v -imultiarch x86_64-linux-gnu foo.c -quiet -dumpbase foo.c -mtune=generic -march=x86-64 -auxbase foo -version -fstack-protector -Wformat -Wformat-security -o /tmp/ccFwNaX5.s


-mtune=generic -march=x86-64
Won't the -march option override the -mtune option?


Another thing. I was under the impression that when the target
platform is x86_64 (so not the same x86-64 as above) then some
options are enabled by default, such as -msse and -msse2.
Is that correct?
Or is just the use of SSE for FP? i.e. -mfpmath=sse
"For the i386 compiler, you must use -march=cpu-type, -msse or -msse2
switches to enable SSE extensions and make this option effective.
For the x86-64 compiler, these extensions are enabled by default."


gcc -v does not print what instruction-set extensions it will
be using? Is there a way to know that gcc used e.g. SSE3
instructions in the code generation?

Regards.




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux