LLVM - 从具有偏移量的指针加载变量



我有一个值,我们称之为vType i8**指向数组的第一个元素。如果我想获取数组第一个元素的变量值,我可以使用 Builder.CreateLoad(v); .如果我想获取数组的第二个元素,是否有类似于CreateLoad()命令的命令,但带有偏移量?

我尝试向v添加一个整数,但它不起作用(出于一些明显的原因我不知道(。我也尝试使用 Builder.CreateGEP(v, Vector<Value *>{ c64(0), c64(1) }); ,但它也不起作用(c64创建一个常量(。

你能帮忙吗?

所以我找到了解决方案。如果v是一个数组,Builder.CreateGEP(v, Vector<Value *>{ c64(0), c64(5) })正确加载 v 的第 6 个元素。如果 v 是指向矩阵 (i8**( 的指针,那么对我有用的是: Builder.CreateGEP(Builder.CreateLoad(p.first), c64(5)) ,它正确加载v指向的数组的第 6 个元素。(函数c64()创建一个 64 位 int 常量(

最新更新