llvm链路的GCC等价物

llvm链路的GCC等价物,gcc,hyperlink,llvm,Gcc,Hyperlink,Llvm,我使用以下LLVM工具将写在多个文件中的cpp项目转换为“一个”单个程序集文件 clang *.cpp -S -emit-llvm llvm-link *.s -S -o all.s llc all.s -march=mips 在GCC中有没有这样做的方法?特别是,有没有办法将GCC生成的程序集文件链接到一个程序集文件中?i、 例如,什么是LLVM-LINK的等价物?也许(链路时间优化)就是您想要的 然后,用gcc-flto编译每个编译单元,例如 gc

我使用以下LLVM工具将写在多个文件中的cpp项目转换为“一个”单个程序集文件

clang      *.cpp   -S -emit-llvm
llvm-link  *.s     -S -o all.s
llc        all.s   -march=mips
在GCC中有没有这样做的方法?特别是,有没有办法将GCC生成的程序集文件链接到一个程序集文件中?i、 例如,什么是LLVM-LINK的等价物?

也许(链路时间优化)就是您想要的

然后,用
gcc-flto
编译每个编译单元,例如

gcc -flto -O -Wall -c src1.c
g++ -flto -O -Wall -c src2.cc
并使用
-flto
(以及相同的优化)链接它们:

g++ -flto -O src1.o src2.o -lsomething
LTO在GCC中工作,在每个生成的程序集文件和对象文件中放置一些内部GCC表示(如Gimple)的表示。看

您可能希望使用来定制GCC(或者简单地使用它的探针来理解Gimple,或者只尝试
GCC-fdump tree all