-emit-llvm -c : clang生成字节码文件
-emit-llvm -s : clang生成人类可读的汇编文件
clang -emit-llvm -c main.c -o main.bc
clang -emit-llvm –S -c main.c -o main.ll
可以分别生成目标文件, 然后编译时链接:
llc -filetype=obj main.bc -o main.o
llc -filetype=obj sum.bc -o sum.o
clang main.o sum.o -o sum
也可以先链接两个bc文件生成一个bc文件,再对其编译:
llvm-link main.bc sum.bc -o sum.linked.bc
llc -filetype=obj sum.linked.bc -o sum.linked.o
clang sum.linked.o -o sum
llc是后端的主要工具,
llc sum.bc -o sum.s
llc sum.bc -filetype=obj -o sum.o
llc -march=mips -filetype=obj sum.bc -o sum.o