LLVMのなかみ (LLVM internals)
基本的にLLVMContextがthread context情報を持っていてModuleが各モジュールを表す。 IR生成時は例えばグローバル変数の生成のような各モジュールに関連付ける必要のある操作ではModuleを渡して操作。またIR生成は最初にllvm::BasicBlockを作ってbuilder.SetInsertPointでBasicBlockを設定する事で、指定されたBasicBlockから命令挿入が始まる。 このようなBasicBlockはコンテキストLLVMContextを指定して生成、関連付け。
#0 ディレクトリ構成 lib/
- CodeGen: IR->マシン非依存データ郡(MachineInstr...)への変換
- Target/X86: ネイティブへの変換(アーキテクチャ依存部)