2014-04-01 61 views
1

时,我想下面的行添加到我的LLVM代码(如ptx backend documentation指定):LLVM错误创建阵列

%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 ] 
^ 

什么我做错了吗?

回答

2

你想添加的行和错误报告的行不一样 - 我猜错了复制粘贴错误?

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

+0

这确实是一个复制粘贴错误(我尝试了两个都得到了错误)。但问题的确在于确定一个全球性的功能范围。谢谢! – PieterV