Archiwum miesiąca: sierpień 2009

Optymalizacja gcc march=native czyli march=co?

Od kiedy w gcc pojawiła się możliwość podania architektury jako „native”, czyli pozwalamy aby kompilator sprawdził jaki jest typ procesora i wybrał najlepszą możliwą architekturę dla parametru -march (lub -mtune), zastanawiałem się jaką tak naprawdę wybierał. Czy na przykład nie używa zbyt niskiej architektury, a może nie włącza flagi -msse3 mimo, że procesor ją wspiera.

Sposób znalazłem na liście mailowej gcc:

$ touch test.c

$ gcc -fverbose-asm -march=native -S test.c

$ cat test.s

albo:

$ gcc -fverbose-asm -march=native -S test.c -o –

aby otrzymać wynik od razu na ekranie.


(możemy wstawić własne flagi np. -02 aby zobaczyć jakie dodatkowe flagi
optymalizacji zostaną użyte)