gentoo的CFLEGS设置为-march=native到底优化了目标代码

来源:互联网 发布:网络扫黄打非工作个人 编辑:程序博客网 时间:2024/05/17 22:51
安装Gentoo时,在编译内核这一步骤前,需要在make.conf文件中设置编译选项,如:
CFLAGS=“-O2 -march=i686 -pipe”

其中-march选项就是就是指定目标架构的名字,gcc就会生成针对目标架构优化的目标代码,如-march=prescott会生成针对i5或i7的目标码,从而充分发挥cpu的性能。自gcc4.2,引入了-march=native,从而允许编译器自动探测目标架构并生成针对目标架构优化的目标代码,这比手工设置要安全的多。如何知道-march=native启用了哪些优化指令呢?

找一个任意c源代码文件,用gcc编译看一下即知答案。  
gcc -Q --help=target -march=native [xxx].c
启用了哪些优化指令一目了然。