誰かがこのコードの何が問題なのか説明してもらえますか?
これはグローバル配列から 2 番目の引数を取得する必要があると思いますが、実際には JIT コンパイル ルーチン内のどこかで静かにクラッシュします。
私の推測:
- GEP 命令は、オフセットを適用して要素のメモリ アドレスを計算し、ポインタを返します。
- load 命令は、指定されたポインターによって参照される値をロードします (つまり、ポインターを逆参照します)。
- ret 命令は関数を終了し、指定された値を呼び出し元に渡します。
私は何か基本的なことを見逃しているようですが、自分で答えを探すのをあきらめるべき時点がなくなり、助けを求めなければなりません。
@arr = common global [256 x i64], align 8
define i64 @iterArray() {
entry:
%0 = load i64* getelementptr inbounds ([256 x i64]* @arr, i32 1, i32 0)
ret i64 %0
}