2015-11-17 3 views
9

Я использую Codeblocks для программы на C в Windows 7. Программа использует библиотеку OMP. Версия GCC - 4.9.2. Mingw x86_64-w64-mingw32-gcc-4.9.2.exe.Почему GCC не показывает информацию о векторизации?

Используемые флаги: -fopenmp -O3 -mfpmath=sse -funroll-loops -ftree-loop-distribution -ftree-vectorize -ftree-vectorizer-verbose=2.

Программа работает правильно, но проблема в том, что она не показывает информацию о том, какие петли были векторизованы или нет. Как я могу это решить?

Сложение Информация о журнале:

-------------- Сложение: Release в **** (компилятор: GNU GCC компилятора) ------- --------

x86_64-W64-mingw32-GCC-4.9.2.exe -Wall -O2 -march = Corei7 -fexpensive-оптимизации -O3 -fopenmp -mfpmath = усэ -funroll-петли -ftree-loop-distribution -ftree-vectorize -ftree-vectorizer-verbose = 2 -c C: \ Users ... \ fc -o obj \ Release \ fo x86_64-w64-mingw32-g ++. exe -o bin \ Release \ d.exe obj \ Release \ fo obj \ Release \ main.o -s "C: \ Program Файлы ... \ libgomp-1.dl l " Выходной файл bin \ Release \ d.exe с размером 21.00 KB Процесс завершен со статусом 0 (0 минута, 0 секунд) 0 ошибок, 0 предупреждение (ов) (0 мин., 0 секунд (ов))

+0

Просто убедитесь, что вы посмотрели вкладку 'build log'? 'Build messages' может не иметь информации о векторизации, если CodeBlocks не может ее проанализировать. – HolyBlackCat

+0

Да, я редактировал сообщение с журналом сборки. – Franktrt

ответ

13

CodeBlocks - это IDE. Он ничего не компилирует. GCC делает. -ftree-vectorizer-verbose используется для работы в предыдущих версиях. Теперь есть -fopt-info, что позволяет получать информацию об оптимизации (тоже векторизация); вы можете найти соответствующую документацию here.

Он даже показал, как на самом деле получить выход векторизатор к stderr: и это одна:

gcc -O2 -ftree-vectorize -fopt-info-vec-missed 

печатает информацию о упущенных возможностях оптимизации от векторизации проходит по STDERR. Обратите внимание, что -fopt-info-vec-missed эквивалентен -fopt-info-missed-vec.

Вы можете изменить missed, например. optimized, all и т.д. как указано.

+0

Теперь это работает. Прежде чем сменить компилятор, у меня была такая информация, а затем я не смог получить их снова. – Franktrt

+0

Пример флага, который достигает этого, был бы рад ... справочная страница для семейства опций fopt-info немного сложна. –

+0

@AndrewWagner Я проверил документы снова и, похоже, изменился с тех пор, как я опубликовал ответ, поэтому я обновил ссылку и добавил немного больше объяснений. – edmz

Смежные вопросы