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