clangでc言語のソースコードからLLVM IRを得る
c言語のソースコードをLLVM IR に変換するときのコマンドのメモ。
c++の場合はclangをclang++に置き換えればおおよそ同じように出来るはず。
C -> LLVM IR
c言語のソースコードから LLVM IR を出力します。
clang -c -S -emit-llvm source.c
source.ll
に LLVM IR が出力されます。
C -> LLVM ビットコード
c言語のソースコードから LLVM ビットコードを出力します。
# AT&T 形式
clang -c -S source.c
# Intel 形式
clang -c -S -mllvm --x86-asm-syntax=intel source.c
source.bc
にビットコードが出力されます。
LLVM ビットコード -> LLVM IR
LLVM ビットコードから LLVM IR を出力します。
llvm-as 1.ll
source.ll
に LLVM IR が出力されます。