Cuda 创建阵列时发生LLVM错误

Cuda 创建阵列时发生LLVM错误,cuda,llvm,ptx,Cuda,Llvm,Ptx,我想将以下行添加到我的llvm代码中(如中所指定): 但是,我得到以下错误: expected instruction opcode @g = internal addrspace(3) global [4 x i32] [ i32 0, i32 1, i32 2, i32 3 ] ^ 我做错了什么?要添加的行和报告错误的行不一样-我猜是复制粘贴错误 在任何情况下,第一行都是非法的,因为您使用本地名称(以%而不是@开始)定义全局名称。第二行本身是合法的,但从错误消息中我猜您试图将其写入函数中,

我想将以下行添加到我的llvm代码中(如中所指定):

但是,我得到以下错误:

expected instruction opcode
@g = internal addrspace(3) global [4 x i32] [ i32 0, i32 1, i32 2, i32 3 ]
^

我做错了什么?

要添加的行和报告错误的行不一样-我猜是复制粘贴错误


在任何情况下,第一行都是非法的,因为您使用本地名称(以
%
而不是
@
开始)定义全局名称。第二行本身是合法的,但从错误消息中我猜您试图将其写入函数中,而函数不是全局函数的合法位置。就像C中的globals一样,LLVM globals需要直接在模块范围内定义,在任何函数定义之外。

这确实是一个复制粘贴错误(我尝试了这两种方法,但都遇到了错误)。但问题确实在于定义一个全局功能范围。谢谢
expected instruction opcode
@g = internal addrspace(3) global [4 x i32] [ i32 0, i32 1, i32 2, i32 3 ]
^