Compiler construction 点文件不生成-查看isel dags选项
在尝试查看使用LLVM(从启用调试模式的源代码构建)在指令选择阶段生成的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
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