2010-06-10 22 views
16

Gentoo Wiki me dijo lo siguiente:¿Qué hace exactamente -march = native?

Advertencia: GCC 4.2 y por encima del soporte -march = nativa. -march = native aplica configuraciones adicionales más allá de -march, específicas para su CPU. A menos que tenga una razón específica para no (por ejemplo, la distribución cruzada de distcc ), probablemente debería utilizar -march = native, en lugar de cualquiera de los elementos enumerados a continuación.

¿Cuáles son esas configuraciones adicionales?

Respuesta

12

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 

Estoy empezando a gustarme esta opción mucho. -mcx16 y -msahf son dos instrucciones adicionales de la CPU que ahora puede usar gcc, que no estaban disponibles en versiones anteriores de Core2.

+0

En mi i7, también agrega '-mpopcnt -msse4.2 --param l2-cache-size = 8192' donde POPCNT es una instrucción de CPU bastante ordenada. – Cubbi

+4

Extraño. ¿Envías la máquina de compilación junto con tu software? –

+10

@hans: lol, pero el OP está trabajando con Gentoo. Lo que significa que nadie distribuye binarios, solo el código que se compilará en la máquina en la que se ejecutará. –

Cuestiones relacionadas