LLVMを動かしてみる(No1:基礎&環境構築)

この前のメモLLVMを利用したサンプルコードまとめ - .h2oのお気楽日記を基にチュートリアルを進めてみる事にした。


しかしいざ試してみると、LLVMのバージョンアップで、APIやヘッダも結構変わるみたい(開発が盛んとも言うが)で結構手間取った。


さらにはチュートリアルのサンプルコード自体がそのままではコンパイル出来ない事も判明しヘッダ参照しながらサンプルコードを修正。
*1


結構複雑だったので忘れないようにメモ。

  • 環境

OSX:10.5
LLVM:2.6

  • 導入

mac port一括導入。

$sudo port search llvm
lvm @2.6 (lang)
    llvm is a next generation compiler infrastructure
...etc
$sudo port install llvm llvm-devel

LLVMの"Module"を利用し、以下関数相当の操作をC++で記述する。
この記述からLLVM用のバイトコードを生成するサンプル。

/* 以下のような main 関数を作る。
     int32_t main()
     {
         int32_t x;
         x = 123;
         return x;
     }
    • Minimum Compiler(しばらく記事化は先になりそう)

とりあえず、なんか簡単なコンパイラを作ってみる。

参考にさせていただいた記事
KMC Staff Blog:LLVM の JIT を使ってみる (4)

*1:最初はDebian Lenny環境で試したがLLVMが2.2と古くヘッダが足りないと派手に怒られてしまい、急遽OSXで試す事に