Compiler construction 点文件不生成-查看isel dags选项

Compiler construction 点文件不生成-查看isel dags选项,compiler-construction,llvm,graphviz,dot,llc,Compiler Construction,Llvm,Graphviz,Dot,Llc,在尝试查看使用LLVM(从启用调试模式的源代码构建)在指令选择阶段生成的SelectionDag节点时,我使用的是下面的命令,该命令不创建Graphviz点文件 llc -view-isel-dags sum.bc 相反,它正在创建sum.s文件。这里有我遗漏的东西吗 总数.c sum.bc LLVM信息 猜测问题在于默认情况下启用的快速指令选择 $llc-debug sum.ll 跳过函数sum上的“X86 DAG->DAG指令选择” 更改函数和的优化级别 前-O2;之后:-O0 FastS

在尝试查看使用LLVM(从启用调试模式的源代码构建)在指令选择阶段生成的
SelectionDag
节点时,我使用的是下面的命令,该命令不创建Graphviz点文件

llc -view-isel-dags sum.bc
相反,它正在创建
sum.s
文件。这里有我遗漏的东西吗

总数.c

sum.bc

LLVM信息


猜测问题在于默认情况下启用的快速指令选择

$llc-debug sum.ll

跳过函数sum上的“X86 DAG->DAG指令选择”

更改函数和的优化级别 前-O2;之后:-O0

FastSel已启用

禁用Fastsel解决了这个问题


$llc-fast isel=false-view-dag-combine1-dags sum.ll

猜测问题在于默认情况下启用的快速指令选择

$llc-debug sum.ll

跳过函数sum上的“X86 DAG->DAG指令选择”

更改函数和的优化级别 前-O2;之后:-O0

FastSel已启用

禁用Fastsel解决了这个问题


$llc-fast isel=false-view-dag-combine1-dags sum.ll

通常
-view
选项在
/tmp
中创建一个点文件,并直接在GraphViz查看器中打开。因此,您可以在
/tmp
下找到
.dot
文件。查看
SelectionDAGISel.cpp
,它不提供仅创建
.dot
文件的选项。
.s
llc
命令的产物,因为它将IR降低到特定组件。感谢您的快速回复。在
/tmp
下找不到
.dot
文件。当发出该命令时,我正在编写“/tmp/dag.compute\u rhs-22fa16.dot”。。。完成。输出行。您没有得到类似的结果吗?没有,没有任何内容正在打印到终端。
llc-help hidden | grep'view isel'
是否返回任何内容?另外,
llvm config--build mode
打印什么?请用这些信息修改您的问题,以避免在评论中进行冗长的讨论。通常,
-view
选项在
/tmp
中创建一个点文件,并直接在GraphViz查看器中打开它。因此,您可以在
/tmp
下找到
.dot
文件。查看
SelectionDAGISel.cpp
,它不提供仅创建
.dot
文件的选项。
.s
llc
命令的产物,因为它将IR降低到特定组件。感谢您的快速回复。在
/tmp
下找不到
.dot
文件。当发出该命令时,我正在编写“/tmp/dag.compute\u rhs-22fa16.dot”。。。完成。输出行。您没有得到类似的结果吗?没有,没有任何内容正在打印到终端。
llc-help hidden | grep'view isel'
是否返回任何内容?另外,
llvm config--build mode
打印什么?你能用这些信息修改你的问题吗,以避免评论中的长时间讨论?
int sum(int x, int y) {
  return x+y;
}
$ clang -emit-llvm sum.c -c -o sum.bc
$ 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