LLVM 論文

"LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation", Chris Lattner and Vikram Adve.
Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO'04), Palo Alto, California, Mar. 2004.
http://llvm.org/pubs/2004-01-30-CGO-LLVM.html より。どうも LLVM の基本概念が分かっていないので、論文斜め読み(中)。
※以下、自分用メモ。

  • 無限の型付き virtual register. SSA form なので代入は1回のみ
  • load/store でメモリーレジスタ間のデータ転送
  • primitive types: void, bool, signed/unsigned integer, single/double precision floating points
  • memory allocation:
    • malloc/free => heap
    • alloca => stack. function から戻る際に自動で deallocate される
  • function call and exception handling:
    • call
    • invoke/unwind 例外処理
  • LLVM - textual, binary, in-memory