Включить вывод отладки для оптимизационных проходов из clang

Я пытаюсь понять существующий проход в LLVM и, таким образом, пытаюсь напечатать красиво написанные отладочные сообщения в проходе. Я делаю это, используя clang -debug -some-other-flags. Однако при компиляции он говорит:

clang: warning: argument unused during compilation: '-debug'

Как включить отладочный вывод?

2 ответов


Clang не имеет опции командной строки "debug"; вам нужно либо построить IR из clang, а затем запустить opt -debug отдельно, или запустить clang -mllvm -debug.

В общем,-mllvm флаг передает все, что появляется впоследствии, самому LLVM. Используйте несколько -mllvm флаги, если вы хотите передать несколько вариантов вперед.


в случае, если принятый ответ не работает для вас: помимо добавления -mllvm -debug, вы нужен clang, который построен с включенными утверждениями отладки, который делается путем добавления -DLLVM_ENABLE_ASSERTIONS=On для параметров cmake при компиляции clang (ref).