Originariamente inviato da
marcoc1712
no, non è la stessa cosa, usare march=native corrisponde ad usare -march=silvermont + altre opzioni, come descritto sopra, anche se il metodo descritto nella pagina che ti ho indicato che fa la compilazione di due programmi c vuoti con le diverse opzioni e le confronta, 'dovrebbe' dare lo stesso risultato, ma a prima vista direi che non è così, mi pare che qui siano riportate anche le opzioni già comprese in -march=silvermont ed -mtune=silvermont.
a me risultano queste differenze:
codice:
18c18
< # -m128bit-long-double -m64 -m80387 -maccumulate-outgoing-args -maes
---
> # -m128bit-long-double -m64 -m80387 -maccumulate-outgoing-args
20,22c20,22
< # -mieee-fp -mlong-double-80 -mmmx -mmovbe -mpclmul -mpopcnt -mpush-args
< # -mred-zone -msahf -msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2 -mssse3
< # -mtls-direct-seg-refs
---
> # -mieee-fp -mlong-double-80 -mmmx -mmovbe -mpclmul -mpopcnt -mprfchw
> # -mpush-args -mrdrnd -mred-zone -msahf -msse -msse2 -msse3 -msse4 -msse4.1
> # -msse4.2 -mssse3 -mtls-direct-seg-refs
Bisognerebbe confrontarle, individuare le differenze ed una per una capire SE è un bene impostarla o meno, dato che, come recita il manuale: "Simply using this whole output instead of -march=native is not recommended".
Se compili sulla stessa macchina che usi, -march=native ti toglie qualsiasi problema e proccupazione.