我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...
Run Code Online (Sandbox Code Playgroud)
我已经使用 RelWithDebugInfo 标志构建了它,也许我应该使用 Debug 标志构建它?或者 cmake 中是否有任何我应该启用的标志?我相信我已经用谷歌搜索得够多了,但我找不到任何信息。
llc --help-hidden | grep view-dag使用我的调试构建执行结果为:
-filter-view-dags= - 只显示名称与所有视图匹配的基本块 -*-dags 选项
-view-dag-combine-lt-dags - 弹出一个窗口以在后合法化类型 dag 组合之前显示 dags pass
-view-dag-combine1-dags - 弹出一个窗口以在第一个 dag 组合之前显示 dags pass
-view-dag-combine2-dags - 弹出一个窗口以在第二个 dag 组合之前显示 dags
如果您查看llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp,该命令行选项位于#ifndef NDEBUG预处理器语句之间,因此这些选项仅在您进行调试构建时才会公开。
更改CMAKE_BUILD_TYPE为Debug并重新编译应该就足够了。