Gentoo Wiki 告诉我以下内容:
警告:GCC 4.2 及以上版本支持 -march=native。-march=native 会应用除了 -march 之外的其他设置,这些设置是针对你的 CPU 的。除非你有特定的原因不使用(例如 distcc 交叉编译),你应该使用 -march=native,而不是下面列出的任何选项。
这些额外的设置是什么?
Gentoo Wiki 告诉我以下内容:
警告:GCC 4.2 及以上版本支持 -march=native。-march=native 会应用除了 -march 之外的其他设置,这些设置是针对你的 CPU 的。除非你有特定的原因不使用(例如 distcc 交叉编译),你应该使用 -march=native,而不是下面列出的任何选项。
这些额外的设置是什么?
不用介意。
$ 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
是两个额外的CPU指令,gcc现在可以使用它们,而这些指令在早期的Core2上不可用。
-mpopcnt -msse4.2 --param l2-cache-size=8192
,其中POPCNT是一条相当不错的CPU指令。 - Cubbi