有人可以解释一下这段代码有什么问题吗?
我认为这应该从全局数组中获取第二个参数,但实际上它会默默地粉碎 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
}