Как проверить параметры оптимизации gcc? - PullRequest
0 голосов
/ 23 сентября 2018

Я пытаюсь выяснить критические варианты оптимизации.Во-первых, скомпилируйте программу с

gcc source.c -o test -O3 -Q -v

-Q -v перечисляет включенные флаги (-faggressive-loop-optimizations -falign-label -fasynchronous-unwind-tables и т. Д.).Тогда, если предоставить эти флаги непосредственно в gcc вместо -O3, производительность результирующей программы будет, если оптимизация была отключена.

В документации gcc говорится, что

Не все оптимизации контролируютсяпрямо под флагом

Может быть, дело в этом, или я что-то пропустил?

1 Ответ

0 голосов
/ 23 сентября 2018

Нет, скорее всего, вы ничего не пропустили.Это было объяснено в этом посте

Как получить оптимизацию gcc -O1 без указания -O1

Существуют внутренние флаги, которые пользователь не может контролировать, но которые активированыс помощью глобальных флагов оптимизации, таких как -O1, -O2, -O3, -Os или -Ofast.

Вы можете попытаться «обмануть», сначала указав -O1, а затем добавив свои флаги.Но, тем не менее, нет гарантии, что вы получите тот же эффект, что и -O3, в первую очередь.

Короткая версия - просто не делайте этого.Используйте глобальные переключатели и при необходимости включайте / выключайте отдельные флаги.

...