Подтвердить что ты не робот

Как определить, какие оптимизации применяются при использовании gcc?

С семейством компиляторов IBM XL можно предоставить две опции (-qreport и -qlist) для создания отчетов для каждого исходного файла, которые включают информацию о том, какие оптимизации были применены или какие части кода не могут быть оптимизированы (и почему).

Можно ли получить аналогичную отчетность для GNU g++ - и если да, как это сделать?

4b9b3361

Ответ 1

Взгляните на флаги -fdump-tree-[switch]. Вы можете использовать -fdump-tree-all для получения информации.

Также в trunk gcc -fopt-info-[options] вы получите доступ к информации оптимизации более высокого уровня, например. когда были применены конкретные оптимизации, пропущенные и т.д., например.

-fopt-info-inline-optimized-missed

Печать всех успешных и пропущенных оптимизаций вложения (в этом случае stderr). Это, очевидно, довольно новая функциональность, поэтому я не уверен, насколько хорошо она поддерживается.

В предыдущих выпусках они имели -ftree-vectorizer-verbose=n, который теперь устарел в пользу opt-info.

Все эти параметры перечислены здесь http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html, хотя это может быть немного сложнее выделить полезные.

Ответ 2

Используйте -S -fverbose-asm, чтобы перечислить каждую тихо используемую опцию (включая оптимизационные) в заголовке ассемблера.