а еще компилить можно с оптимизацией, путем добавления команд
перед компиляцией. если что поправьте меня, т.к. в моем дистрибутиве эти настройки записаны в файл и я их каждый раз не ввожу.
еще поясню, что опция -march=native дает команду определить компилятору семейство вашего процессора совместно с архитектурой операционной системы.
-O2 значит второй уровень оптимизации, его обычно рекомендуют для оптимальной сборки. например -O3 может привести к непредвиденному результату.