Skip to content
hatsusato edited this page Apr 9, 2016 · 18 revisions

LLVMModuleRef

  • LLVMモジュール全体の情報を管理する。
    • LLVMが管理するグローバル変数・関数やシンボルテーブルの情報を含む。
  • LLVMを使うときはまず最初にこのオブジェクトが必要。
  • LLVMModuleCreateWithName で作って LLVMDisposeModule で破棄する。

LLVMTypeRef

  • 型情報を持つ。
  • Integer Types
    • 整数型
      • 型ではサイズだけを規定し、 signed / unsigned は演算時に指定する。
  • Floating Point Types
    • 浮動小数点数型
  • Function Types
    • 関数型
      • IsVarArg は可変長かどうかを表す。
  • Structure Types
    • 構造体型
      • Packed はパディングのないアラインメントが 1 の構造体。
  • Sequential Types
    • 配列型
    • ポインタ型
      • AddressSpace は基本 0
    • ベクトル型
      • SIMDとかするやつ。
  • Other Types
    • ボイド型、ラベル型など

LLVMBasicBlockRef

  • 条件分岐とかループとかジャンプのない一直線の命令列を表す。
    • 関数呼び出しはジャンプには入らない。
    • 任意の Basic Block は関数に属する。
  • Basic Block には Instruction Builder を用いて命令を追加する。
  • LLVMValueRef と型の互換性がある。

Builder: 指定した場所に命令を追加する

Clone this wiki locally