2013-08-03 44 views
0

我使用下列LLVM工具將多個文件中寫入的cpp項目轉換爲「一個」單個程序集文件。GCC相當於llvm-link

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

有沒有辦法在GCC中做到這一點?特別是,有沒有辦法將GCC生成的程序集文件鏈接成一個程序集文件?即什麼是LLVM-LINK的等價物?

回答

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的一些表示工作在GCC表示(如Gimple)。請參閱its documentation

您可能想要使用MELT來定製GCC(或者只是使用其探針來了解Gimple,或者試試gcc -fdump-tree-all)。