将值分配给 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
中。
如果我将 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
中。