Что именно -march = native делает? - PullRequest
18 голосов
/ 10 июня 2010

Gentoo Wiki сказал мне следующее:

Предупреждение: поддержка GCC 4.2 и выше -march = родной. -march = родной применяет дополнительные настройки помимо -march, специфичные для вашего процессора. Если у вас нет конкретная причина не (например, distcc кросс-компиляция), вы должны, вероятно, использовать -march = native, а не все, что перечислено ниже.

Что это за дополнительные настройки?

1 Ответ

13 голосов
/ 10 июня 2010

Nevermind.

$ 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, которых не было в более ранних версиях Core2.

...