创建阵列时出现LLVM错误

时间:2014-04-01 14:59:24

标签: cuda llvm ptx

我想在我的llvm代码中添加以下行(在ptx backend documentation中指定):

%1 = internal addrspace(3) global [4 x i32] [ i32 0, i32 1, i32 2, i32 3 ]

但是,我收到以下错误:

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

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您要添加的行以及报告错误的行不一样 - 我猜测复制粘贴错误?

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