2010-06-10 17 views
16

Gentoo Wiki mi ha detto quanto segue:Cosa fa esattamente -march = native?

Attenzione: GCC 4.2 e sopra il supporto -march = native. -march = native applica ulteriori impostazioni oltre -march, specifiche per la tua CPU. A meno che non si abbia uno specifico motivo per cui non è (ad esempio distcc cross-compiling), si dovrebbe probabilmente utilizzare -march = nativo, piuttosto che qualsiasi cosa elencata di seguito.

Quali sono queste impostazioni aggiuntive?

risposta

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 

Sto iniziando ad apprezzare molto questa opzione. -mcx16 e -msahf sono due ulteriori istruzioni per la CPU che gcc ora può utilizzare, che non erano disponibili in precedenti Core2.

+0

Sul mio i7, aggiunge anche '-mpopcnt -msse4.2 --param l2-cache-size = 8192' dove POPCNT è un'istruzione CPU piuttosto ordinata. – Cubbi

+4

Strano. Spedite la macchina di costruzione insieme al vostro software? –

+10

@hans: lol, ma l'OP sta lavorando con Gentoo. Il che significa che nessuno distribuisce i binari, solo il codice da compilare sulla macchina su cui verrà eseguito. –

Problemi correlati