我想在我的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 ]
^
我做错了什么?
答案 0 :(得分:2)
您要添加的行以及报告错误的行不一样 - 我猜测复制粘贴错误?
在任何情况下,第一行都是非法的,因为您要定义一个具有本地名称的全局(从%
开始而不是@
)。第二行本身是合法的,但是从错误消息我猜你试图在函数内写入它,这不是全局的合法位置。就像C中的全局变量一样,LLVM全局变量需要在模块范围内直接定义,不在任何函数定义之外。