opt
opt -S -instcombine src.ll -o out.ll
使用instcombine参数优化ll,很像LLVM PASS 优化器
更多的优化可以查看 opt -h
clang
clang.exe -emit-llvm -S main.c -o main.ll
将c代码编译为LLVM IR
llvm-as
llvm-as.exe src.ll -o src.bc
将LLVM IR转为bitcode的形式
llc
llc.exe src.bc -o src.asm
将bitcode文件转为汇编文件
llvm-dis
llvm-dis.exe src.bc -o out.ll
将bitcode转为LLVM IR
llvm-link
#include <stdio.h>
extern int add(int a, int b);
int main()
{
printf("%d
", add(1, 2));
return 0;
}
clang -emit-llvm -S main.c -o main.ll
clang -emit-llvm -S lib.c -o lib.ll
llvm-as.exe main.ll -o main.bc
llvm-as.exe lib.ll -o lib.bc
llvm-link.exe lib.bc main.bc -o out.bc
类似传统连接器将多个bitcode文件,变成一个,具体可以看下生成的LLVM IR
lli
lli.exe out.bc
执行(JIT) LLVM bitcode
See also: