GCC相当于llvm-link

时间:2013-08-03 13:33:35

标签: gcc hyperlink llvm

我使用以下LLVM工具将以多个文件编写的cpp项目转换为“ONE”单个汇编文件。

clang      *.cpp   -S -emit-llvm
llvm-link  *.s     -S -o all.s
llc        all.s   -march=mips

在GCC中有没有办法做到这一点?特别是,有没有办法将GCC生成的汇编文件链接到一个汇编文件中?即什么是LLVM-LINK的等价物?

1 个答案:

答案 0 :(得分:0)

或许LTO(链接时间优化)就是你想要的。

然后,使用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表示的一些表示(如Gimple),在GCC中工作。见its documentation

您可能希望使用MELT来自定义GCC(或只是使用其探针来理解Gimple,或只尝试gcc -fdump-tree-all)。