究竟是什么-march = native呢?

时间:2010-06-10 14:24:31

标签: c++ c gcc gcc4

Gentoo Wiki告诉我以下内容:

  

警告:GCC 4.2及以上支持   -march =本地。 -march = native在-march之外应用其他设置,   特定于您的CPU。除非你有   一个特定的原因不(例如,distcc   交叉编译),你应该   使用-march = native,而不是   以下列出的任何内容。

这些额外设置是什么?

1 个答案:

答案 0 :(得分:13)

没关系。

$ cc -march=core2 -E -v - </dev/null 2>&1 | grep cc1
 /[...]/cc1 -E -quiet -v -iprefix /[...]/4.3.2/ - -march=core2

$ cc -march=native -E -v - </dev/null 2>&1 | grep cc1
 /[...]/cc1 -E -quiet -v -iprefix /[...]/4.3.2/ - -march=core2 -mcx16 -msahf --param l1-cache-size=32 --param l1-cache-line-size=64 -mtune=core2

我开始喜欢这个选项。 -mcx16-msahf是gcc现在可以使用的两个额外的CPU指令,这些指令在早期的Core2中不可用。