不为 -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