不为 -view-isle-dags 选项生成点文件
Dot file not genearting for -view-isel-dags option
在尝试使用 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
猜测问题出在默认启用的快速指令选择上。
$ llc -debug sum.ll
跳过函数 sum
的传递 'X86 DAG->DAG Instruction Selection'
更改函数总和的优化级别
之前:-O2;之后:-O0
FastISel 已启用
禁用 fastIsel 解决了这个问题。
$ llc -fast-isel=false -view-dag-combine1-dags sum.ll
在尝试使用 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
猜测问题出在默认启用的快速指令选择上。
$ llc -debug sum.ll
跳过函数 sum
的传递 'X86 DAG->DAG Instruction Selection'更改函数总和的优化级别 之前:-O2;之后:-O0
FastISel 已启用
禁用 fastIsel 解决了这个问题。
$ llc -fast-isel=false -view-dag-combine1-dags sum.ll