-
Notifications
You must be signed in to change notification settings - Fork 0
LLVM C API
hatsusato edited this page Apr 9, 2016
·
18 revisions
- LLVMモジュール全体の情報を管理する。
- LLVMが管理するグローバル変数・関数やシンボルテーブルの情報を含む。
- LLVMを使うときはまず最初にこのオブジェクトが必要。
-
LLVMModuleCreateWithNameで作ってLLVMDisposeModuleで破棄する。
- 型情報を持つ。
-
Integer Types
- 整数型
- 型ではサイズだけを規定し、
signed/unsignedは演算時に指定する。
- 型ではサイズだけを規定し、
- 整数型
-
Floating Point Types
- 浮動小数点数型
-
Function Types
- 関数型
-
IsVarArgは可変長かどうかを表す。
-
- 関数型
-
Structure Types
- 構造体型
-
Packedはパディングのないアラインメントが1の構造体。
-
- 構造体型
-
Sequential Types
- 配列型
- ポインタ型
-
AddressSpaceは基本0。
-
- ベクトル型
- SIMDとかするやつ。
-
Other Types
- ボイド型、ラベル型など
- 条件分岐とかループとかジャンプのない一直線の命令列を表す。
- 関数呼び出しはジャンプには入らない。
-
LLVMBuildCallで命令追加できる。
-
- 任意の Basic Block は関数に属する。
- 関数呼び出しはジャンプには入らない。
- Basic Block には Instruction Builder を用いて命令を追加する。
-
LLVMValueRefと型の互換性がある。
Builder: 指定した場所に命令を追加する