从clang启用优化传递的调试输出

shr*_*hrm 14 debugging llvm clang

我试图了解LLVM中的现有传递,从而尝试在传递中打印编写良好的调试消息.我这样做是通过使用clang -debug -some-other-flags.然而,在编译它时说:

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

如何启用调试输出?

Oak*_*Oak 16

Clang没有"debug"命令行选项; 你需要从clang构建IR然后opt -debug单独运行,或运行clang -mllvm -debug.

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

  • 这似乎有效。谢谢。请问-mllvm`标志的作用是什么? (2认同)
  • @mishr它将随后出现的任何内容传递给LLVM本身。 (2认同)
  • 如果您使用 Clang 运行 pass,则可能有很多。在这种情况下,像`-mllvm -debug-only=simplifycfg` 之类的东西可能会有所帮助。 (2认同)

glu*_*k47 5

如果接受的答案对您不起作用:除了添加之外-mllvm -debug,您还需要在启用调试断言的情况下构建的clang,这是通过-DLLVM_ENABLE_ASSERTIONS=On在编译clang(ref)时添加到cmake选项来完成的。