如果我创建一个LLVM数组作为
%a = alloca [3 x i32]
并且想给数组中的第一个元素赋值,我该怎么做?我是否必须以某种方式重新创建具有该值的数组?我想使用纯LLVM代码,而不是LLVM API。
首先,您需要使用getelementptr
指令获取指向第一个元素的指针,然后使用它来存储您的值:
%p = getelementptr [3 x i32], [3 x i32]* %a, i32 0, i32 0
store i32 4, i32* %p
这将值CCD_ 2存储在第一个元素中。要存储在不同的索引中,您可以将最后一个整数更改为所需的索引:
%p = getelementptr [3 x i32], [3 x i32]* %a, i32 0, i32 2
store i32 4, i32* %p
这一个将4
存储在索引2
中。