【问题标题】:LLVM error when creating array创建数组时出现 LLVM 错误
【发布时间】:2014-04-02 00:52:58
【问题描述】:

我想将以下行添加到我的 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 ]
^

我做错了什么?

【问题讨论】:

    标签: cuda llvm ptx


    【解决方案1】:

    您要添加的行和报错的行不一样——我猜是复制粘贴错误?

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

    【讨论】:

    • 这确实是一个复制粘贴错误(我都尝试了,但都出现了错误)。但问题确实是在函数范围内定义了一个全局。谢谢!
    猜你喜欢
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多