Как включить отдельные флаги оптимизации в gcc? - PullRequest
2 голосов
/ 30 марта 2012

При использовании gcc можно ли включить отдельные флаги оптимизации без указания уровня -O?

gcc -ffasst-math foo.c

OR

gcc -O1 -ffast-math foo.c

Какой из них работает? Спасибо!

1 Ответ

0 голосов
/ 30 марта 2012

Да, вы можете включить отдельные флаги оптимизации.

Информация со страницы руководства 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 для математических функций.Это может, однако, привести к более быстрому коду для программ, которые не требуют гарантий этих спецификаций.

...