在尝试查看使用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
答案 0 :(得分:0)
猜想问题出在默认情况下启用的快速指令选择。
$ llc -debug sum.ll
跳过函数总和的“ X86 DAG-> DAG指令选择”
更改函数总和的优化级别 之前:-O2;之后:-O0
启用FastISel
禁用fastIsel可以解决此问题。
$ llc -fast-isel=false -view-dag-combine1-dags sum.ll