点文件不适合-view-isel-dags选项

时间:2018-08-28 10:16:03

标签: compiler-construction llvm graphviz dot llc

在尝试查看使用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

1 个答案:

答案 0 :(得分:0)

猜想问题出在默认情况下启用的快速指令选择。

$ llc -debug sum.ll

跳过函数总和的“ X86 DAG-> DAG指令选择”

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

启用FastISel

禁用fastIsel可以解决此问题。

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