Что именно делает-march=native?

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

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

каковы эти дополнительные параметры?

1 ответов


Фигу.

$ 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.