使用clang启用优化过程的调试输出

19

我正在尝试理解LLVM中现有的一个传递(pass),并因此尝试打印该传递中精美编写的调试信息。我是通过使用 clang -debug -some-other-flags 来实现的。然而,在编译时会出现以下提示:

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

如何启用调试输出?


任何想法都将不胜感激。 - shrm
2个回答

24

Clang没有“debug”命令行选项;您需要从clang构建IR,然后单独运行opt -debug,或者运行clang -mllvm -debug

通常,-mllvm标志将其后面出现的任何内容传递给LLVM本身。如果要传递多个选项,请使用多个-mllvm标志。


2
看起来可以工作。谢谢。我可以问一下-mllvm标志的作用是什么吗? - shrm
2
@mishr 它将随后出现的任何内容传递给LLVM本身。 - Oak
4
如果你使用Clang运行passes,可能会有许多这样的passes。在这种情况下,像-mllvm -debug-only=simplifycfg这样的东西可能会有所帮助。 - Sjlver

8
如果已接受的答案对您无效:除了添加-mllvm-debug外,您还需要使用启用调试断言的构建clang(ref) ,这可以通过在编译clang时添加-DLLVM_ENABLE_ASSERTIONS=On选项来完成。(参考链接)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接