将值分配给 LLVM 数组

Asslign a value to an LLVM array

如果我将 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

这会将值 4 存储在第一个元素中。要存储在不同的索引中,您将最后一个整数更改为您需要的索引:

%p = getelementptr [3 x i32], [3 x i32]* %a, i32 0, i32 2
store i32 4, i32* %p

这个存储 4 在索引 2 中。