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)