LLVM C API を使う.


LLVM には C++ と C API が用意されています. 最近は FTL http://blog.llvm.org/2014/07/ftl-webkits-llvm-based-jit.html のおかげで C API の整備が大分進み, 十分使える感じになっています.

C API のほうがコンパイル時間も短くて済み, また言語バインディングを書くとなども, リンケージや ABI 問題に悩まされなくなります. これからは C API で書いておきたいですね.

LLVM C API のサンプル

ひとつの大きな問題はドキュメントやサンプルコードがオフィシャルには無い事です.

幸い FTL(webkit) には RefucedFTL という謎(?)の LLVM C API を使ったサンプルがあります.

これをみれば大体わかりますね!

昨今の LLVM では MCJIT が推奨のようです. ExecutioEngine には MCJIT を使い, LLVMLinkInMCJIT() を忘れずに呼び出しておきましょう.