Llvm llc没有调试或-view-dag-combine1-dags选项

Llvm llc没有调试或-view-dag-combine1-dags选项,llvm,llc,Llvm,Llc,我已经通过package manager在我的计算机上安装了llc程序(当然我已经安装了LLVM,6.0.0版本)。另外,我有它的来源。我想要的是查看由llvm生成的DAG。但是,不幸的是,在这两个版本的llc上,我没有任何选项,如-debug,-view-dag-combine1-dags等。这让我发疯,因为到处都写着,这面旗帜应该帮助我,但没有提到如果我没有它们该怎么办。在《帮助与人》中,没有这样的选择。我已经安装了graphviz、dot和gv,这应该不是问题 编译的llc版本 ./llc

我已经通过package manager在我的计算机上安装了
llc
程序(当然我已经安装了LLVM,6.0.0版本)。另外,我有它的来源。我想要的是查看由llvm生成的DAG。但是,不幸的是,在这两个版本的
llc
上,我没有任何选项,如
-debug
-view-dag-combine1-dags
等。这让我发疯,因为到处都写着,这面旗帜应该帮助我,但没有提到如果我没有它们该怎么办。在《帮助与人》中,没有这样的选择。我已经安装了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中是否有我应该启用的标志?我相信我已经在谷歌上搜索了足够多的信息,但我找不到任何信息。

使用我的调试生成结果执行
llc--help hidden | grep view dag

-过滤器视图DAG=- 仅显示名称与此匹配的所有基本块 查看-*-dags选项
-查看dag合并lt dag-弹出一个窗口,在后合法化类型dag合并之前显示dag 通过
-view-dag-combine1-dags-弹出一个窗口,显示第一个dag组合过程之前的dag
-view-dag-combine2-dags-弹出一个窗口以显示第二个dag combine过程之前的dag

如果查看
llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
,则该命令行选项位于
#ifndef NDEBUG
预处理器语句之间,因此这些选项仅在调试生成时才会显示

CMAKE\u BUILD\u类型
更改为
Debug
并重新编译就足够了。

我这样做了,而且效果很好

$ cmake -DCMAKE_BUILD_TYPE:STRING=Debug
您可以检查:

如果你想检查DAG,也许它能帮你


这里:

您首先编写的版本是6.0.0,然后是7.0.0。。。是哪一个?:]]谢谢你的回复,虽然我不能检查,如果它是一个解决方案,因为我不能在调试中构建llvm,我只是没有足够的内存:)你也可以使用release+asserts构建,它要小得多:@ayke这一定是构建系统的Make部分的遗物。上面说“启用代码断言。当且仅当CMAKE_BUILD_TYPE为Debug时,默认为ON”。对于
LLVM_ENABLE_断言
变量,我相信它在我上次检查时起作用,使用的是release+assert BUILD。也许
LLVM\u ENABLE\u断言
并不意味着
!NDEBUG