使用CMake使用LLVM LLD发送单个IR bitcode文件

时间:2017-10-26 15:13:57

标签: cmake llvm lld

我正在使用Ubuntu 16.04 x86_64和LLVM 5.0,并希望使用CMake将项目编译为单个LLVM IR bitcode文件。我知道有一种方法可以使用带有LLVM插件的GOLD链接器并添加CMake链接器标志“ -fuse-ld = gold -Wl,-plugin-opt = emit-llvm ”和CXX标志“ -flto ”。

但是,当我尝试使用LLVM LLD链接器和“ -fuse-ld = lld -Wl,-plugin-opt = emit-llvm ”分别“”编译项目时flto “标记,链接器正在生成本机可执行文件而没有LLVM IR文件。我正在搜索其他LLD选项以发出LLVM IR文件,但一无所获。

是否有方法(或选项)使用LLD生成单个LLVM IR文件?

1 个答案:

答案 0 :(得分:2)

您可以使用-save-temps选项。

clang -flto -fuse-ld=lld -Wl,-save-temps a.o b.o -o myprogram

这将在其他文件中生成myprogramXYZ.precodegen.bc。然后,您可以使用llvm-dis以可读的IR格式获取它。