我正在使用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文件?
答案 0 :(得分:2)
您可以使用-save-temps
选项。
clang -flto -fuse-ld=lld -Wl,-save-temps a.o b.o -o myprogram
这将在其他文件中生成myprogramXYZ.precodegen.bc
。然后,您可以使用llvm-dis
以可读的IR格式获取它。