執行 IR 上的指令合并優化 pass
$ opt –S –instcombine testfile.ll –o output1.ll
執行無效參數優化 pass
$ opt –S –deadargelim testfile.ll –o output2.ll
C 語言生成 IR 文件
$ clang -emit-llvm -S multiply.c -o multiply.ll
C 語言生成 IR 文件
$ clang -cc1 -emit-llvm testfile.c -o testfile.ll
IR 到 bitcode
$ llvm-as test.ll –o test.bc
bitcode 到 目標 asm
$ llc test.bc –o test.s
$ clang -S test.bc -o test.s –fomit-frame-pointer
bitcode 到 IR
$ llvm-dis test.bc –o test.ll
optimization 的格式:
$opt –passname input.ll –o output.ll
重復,C 語言 到 IR
$ clang -emit-llvm -S multiply.c -o multiply.ll
執行內存提升為寄存器優化 pass
$ opt -mem2reg -S multiply.ll -o multiply1.ll
鏈接 bitcode
$ llvm-link test1.bc test2.bc –o output.bc
虛擬機運行 bitcode
$ lli output.bc
第一輪預處理展開
$ clang test.c -E
抽象語法樹
$ clang -cc1 test.c -ast-dump
將 LLVMIR 輸出到屏幕
$ clang test.c -S -emit-llvm -o -
將 ASM 輸出到屏幕
$ clang -S test.c -o -