Unix CLang LLVM将DAG点文件写入当前目录

Unix CLang LLVM将DAG点文件写入当前目录,unix,clang,llvm,dot,directed-acyclic-graphs,Unix,Clang,Llvm,Dot,Directed Acyclic Graphs,通过运行LLC-view-DAG-combine1-dags src.ll从clang-S-emit LLVM src.c瞄准我的IR生成的代码,我成功地从LLVM LLC工具生成了DAG点文件输出 但是,它默认将输出点文件写入临时目录: 书写 “/var/folders/yr/bkw72rn11p7454jkmnn7p78000gn/T/sunit dag.foo:entry-b6411e.dot”。。。 完成。正在尝试“打开”程序。。。请记住删除图形文件: /var/folders/yr/b

通过运行
LLC-view-DAG-combine1-dags src.ll
clang-S-emit LLVM src.c
瞄准我的IR生成的代码,我成功地从LLVM LLC工具生成了DAG点文件输出 但是,它默认将输出点文件写入临时目录:

书写 “/var/folders/yr/bkw72rn11p7454jkmnn7p78000gn/T/sunit dag.foo:entry-b6411e.dot”。。。 完成。正在尝试“打开”程序。。。请记住删除图形文件: /var/folders/yr/bkw72rn11p7454jkmnn7p78000gn/T/sunit dag.foo:entry-b6411e.dot

我尝试了太多的变通方法来将文件获取到当前目录,甚至尝试列出、排序和复制此临时目录中最新修改的文件。但是,运行一个生成命令(未知文件数)可能会生成多个文件,因此我的临时解决方案失败

问题
如何将这些文件重定向到我的当前目录?
我欢迎任何答案,即使是变通的答案

注: Clang,LLVM,LLC版本:3.7


提前谢谢。

简短回答:你不能

详细回答:lib/Support/GraphWriter.cpp中有llvm::createGraphFilename()例程,负责图形文件名,并无条件创建临时文件。因此,您需要更改此函数并重新编译LLVM,以获得所需的功能