Scheme Compiler の勉強 (3) - LLVM へ

ここまでで、少しずつネイティブコンパイラを作る勉強のイメージと、そのためには自動テストスイートが大事ということが少し分かった。

どっちの方針でいくか決める前に、ターゲットを LLVM にする場合も試してみよう。 LLVM については、文字通り、全然分かっていない。

  • http://llvm.org/docs/FAQ.html#langirgen "I'd like to write a self-hosting LLVM compiler. How should I interface with the LLVM middle-end optimizers and back-end code generators?" 3つの選択肢が示されている。今回の勉強でやろうとしているのは二番目の"Emit LLVM assembly from your compiler's native language." だ。多分。LLVM の出力は割と普通の言語っぽいので、これを出力するのは結構面倒かもしれない。
    • schemellvmコンパイラは既に存在したはず。単に勉強なので存在しようがしまいがあまり気にしない。
  • http://llvm.org/docs/CommandGuide/index.html LLVM Command Guide このツール一式を得るためには、ソースから LLVMコンパイルが必要らしい。
    • llvm-gcc -S -emit-llvmLLVM の出力を得たあと、それをさらに llvm-gcc に渡すとエラーになっていた。これは嬉しくない。何かオプションを与えればできるのかもしれないし、llvm-as を通せばいいのかもしれない。ともかく、現在 llvm をソースからコンパイル中。


続く