2

llc通过包管理器在我的计算机上安装了程序(当然我安装了 LLVM,6.0.0 版本)。另外,我是从源代码构建的。我想要的是查看由 llvm 生成的 DAG。-debug但是,不幸的是,我-view-dag-combine1-dags在两个版本的llc. 这让我发疯,因为它到处都是,这个标志应该可以帮助我,但没有提到如果我没有它们该怎么办。在 help 和 man 中,没有这样的选项。我安装了graphviz、dot和gv,应该不是问题。

编译的版本llc

./llc -version
LLVM (http://llvm.org/):
LLVM version 7.0.0svn
Optimized build.
Default target: x86_64-unknown-linux-gnu
Host CPU: broadwell

Registered Targets:
   and targets...

我用 RelWithDebugInfo 标志构建了它,也许我应该用 Debug 标志构建它?或者cmake中是否有任何我应该启用的标志?我相信我已经用谷歌搜索了足够多的信息,但找不到任何信息。

4

2 回答 2

3

使用我的调试版本执行llc --help-hidden | grep view-dag会导致:

-filter-view-dags= - 仅显示名称与所有 view-*-dags 选项匹配的基本块
-view-dag-combine-lt-dags - 在发布合法化类型 dag combine 之前弹出一个窗口以显示 dag pass
-view-dag-combine1-dags - 在第一个 dag combine pass 之前弹出一个窗口显示
dags -view-dag-combine2-dags - 在第二个 dag combine pass 之前弹出一个窗口显示 dags

如果您查看llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp,该命令行选项位于#ifndef NDEBUG预处理器语句之间,因此这些选项仅在您进行调试构建时才会公开。

更改CMAKE_BUILD_TYPEtoDebug并重新编译就足够了。

于 2018-07-22T12:43:58.630 回答
0

我做到了,它有效。

$ cmake -DCMAKE_BUILD_TYPE:STRING=Debug

您可以查看:https ://github.com/llvm/llvm-project/blob/master/llvm/docs/CMake.rst#id5

如果您想检查 DAG,那么它可能会对您有所帮助。

在这里:https ://stackoverflow.com/a/52095047/12365658

于 2020-03-12T09:18:05.447 回答