LLVM 工具使用

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

#include <stdio.h>
extern int add(int a, int b);
int main()
{
    printf("%d\n",  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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章