Да, вы можете включить отдельные флаги оптимизации.
Информация со страницы руководства gcc:
-O
-O включает следующие флаги оптимизации:
-fauto-inc-dec -fcprop-registers -fdce -fdefer-pop -fdelayed-branch -fdse -fguess-branch-вероятность -fif-преобразование2 -fif-преобразование -finline-small-functions -fipa-pure-const -fipa-reference -fmerge-constants -fsplit-wide-types -ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-copyrename -ftree-dce -ftree-доминатор-опц-ftree-fre -ftree-sra -ftree-ter -funit-at-a-time
-O также включает -fomit-frame-pointer на машинах, где это не мешает отладке.
-ffast-math
Устанавливает -fno-math-errno, -funsafe-math-optimizations, -ffinite-math-only, -fno-rounding-math, -fno-signaling-nans и-fcx-ограниченного диапазона.Эта опция заставляет макрос препроцессора " FAST_MATH " быть определенным.
Эта опция не включена ни одной опцией -O, так как это может привести к неправильному выводу для программ, которые зависят от точноговнедрение правил / спецификаций IEEE или ISO для математических функций.Это может, однако, привести к более быстрому коду для программ, которые не требуют гарантий этих спецификаций.