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

Эквивалент -ftree-vectorizer-verbose для clang

Вопрос заключается в том, как сделать clang распечатать информацию о том, какие петли (или другие части кода) были векторизованы. Для этого GCC имеет переключатель командной строки с именем -ftree-vectorizer-verbose=6, но я не мог найти ничего подобного для clang. Поддерживает ли clang это или мой единственный вариант - заглянуть в разборку?

4b9b3361

Ответ 1

clang имеет следующие параметры для печати диагностики, связанной с векторизации:

-Rpass=loop-vectorize identifies loops that were successfully vectorized.

-Rpass-missed=loop-vectorize identifies loops that failed vectorization and indicates if vectorization was specified.

-Rpass-analysis=loop-vectorize identifies the statements that caused vectorization to fail.

Источник: http://llvm.org/docs/Vectorizers.html

Ответ 2

Просматривая исходный код clang, в Transforms/Vectorize проходят пару векторизации:

  • BBVectorize
  • LoopVectorize
  • SLPVectorize

Последние три не имеют аргументов, которые будут печатать вещи. Но внутри BBVectorize есть несколько вариантов печати вещей, когда clang встроен в отладку:

  • bb-vectorize-debug-instruction-exam - Когда включена отладка, выводится информация о процессе проверки инструкций
  • bb-vectorize-debug-choice-selection - Когда включена отладка, выводить информацию о процессе выбора кандидата
  • bb-vectorize-debug-pair-selection - Когда включена отладка, выводится информация о процессе выбора пары
  • bb-vectorize-debug-cycle-check - Когда включена отладка, выводится информация о процессе проверки цикла.
  • bb-vectorize-debug-print-after-every-pair -Когда отладка включена, выгрузите базовый блок после того, как каждая пара сработает

Это похоже на это.