【发布时间】:2018-08-28 10:16:03
【问题描述】:
在尝试使用 LLVM(从启用调试模式的源构建)查看在指令选择阶段生成的 SelectionDag 节点时,我正在使用以下命令,该命令未创建 Graphviz DOT 文件。
llc -view-isel-dags sum.bc
相反,它正在创建sum.s 文件。我这里有什么遗漏吗?
sum.c
int sum(int x, int y) {
return x+y;
}
sum.bc
$ clang -emit-llvm sum.c -c -o sum.bc
LLVM 信息
$ llc -help-hidden | grep 'view-isel' -view-isel-dags - Pop up a window to show isel dags as they are selected
$ llvm-config --build-mode
Debug
【问题讨论】:
-
通常
-view选项会在/tmp中创建一个DOT 文件并直接在GraphViz 查看器中打开它。因此,您可以在/tmp下找到.dot文件。查看SelectionDAGISel.cpp它不提供仅创建.dot文件的选项。.s是llc命令的产物,因为它将 IR 降低到特定程序集。 -
感谢您的快速回复。在
/tmp下找不到.dot文件。 -
发出该命令时,我得到
Writing '/tmp/dag.compute_rhs-22fa16.dot'... done.输出行。你没有得到类似的东西吗? -
不,没有任何东西打印到终端。
-
llc -help-hidden | grep 'view-isel'是否返回任何内容?另外,llvm-config --build-mode打印什么?您能否使用此信息修改您的问题,以避免在 cmets 中进行长时间讨论?
标签: compiler-construction llvm graphviz dot llc