1

誰かがこのコードの何が問題なのか説明してもらえますか?

これはグローバル配列から 2 番目の引数を取得する必要があると思いますが、実際には JIT コンパイル ルーチン内のどこかで静かにクラッシュします。

私の推測:

  1. GEP 命令は、オフセットを適用して要素のメモリ アドレスを計算し、ポインタを返します。
  2. load 命令は、指定されたポインターによって参照される値をロードします (つまり、ポインターを逆参照します)。
  3. 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
}
4

1 に答える 1