0
@a
のタイプがi32*
の理由がわかりません。誰かがそれを私に説明できますか?LLVM - なぜ@aがi32のタイプなのですか?
@a = internal global i32 0
define i32 @main() {
store i32 42, i32* @a
%1 = load i32* @a
ret i32 %1
}
@a
のタイプがi32*
の理由がわかりません。誰かがそれを私に説明できますか?LLVM - なぜ@aがi32のタイプなのですか?
@a = internal global i32 0
define i32 @main() {
store i32 42, i32* @a
%1 = load i32* @a
ret i32 %1
}
the language reference(強調鉱山)から:
グローバル変数は、コンパイル時間の代わりに、実行時に割り当てられたメモリの領域を画定します。
[012]
SSA値として、グローバル変数は、プログラム内のすべての基本ブロックの有効範囲内にある(つまり、それらが支配的である)ポインタ値を定義します。 グローバル変数は常にメモリの領域を記述し、LLVMのすべてのメモリオブジェクトにポインタでアクセスするため、 "コンテンツ"タイプへのポインタを定義します。