为什么要令牌?

闪光烧伤

我写了一个非常简单的llvm IR代码。但是,当我尝试通过llc运行它时,出现以下错误:

llc: add_test.ll:10:16: error: expected value token   
%r = load i32, i32* %retval
             ^

这是代码:target datalayout =“ em:e-i64:64-f80:128-n8:16:32:64-S128” target Triple =“ x86_64-unknown-linux-gnu”

; Function Attrs: nounwind uwtable
define i32 @main() #0 {
entry:
  %retval = alloca i32, align 4
  store i32 0, i32* %retval
  %r = load i32, i32* %retval

  ret i32 0
}

attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }

!llvm.ident = !{!0}

!0 = metadata !{metadata !"clang version 3.5.0 "}

我正在运行的命令是llc add-test.ll

有人知道可能是什么问题吗?

sepp2k

load(除其他外)在LLVM版本3.7中更改了语法您使用的语法是新语法。由于您使用的是3.5版,因此您需要使用旧的语法,即:

%r = load i32* %retval

换句话说,您仅指定参数的类型,而不指定结果的类型。

我认为出现问题是因为您使用的是旧版本的LLVM,而您使用的是当前版本的文档。LLVM 3.5.0的文档可以在这里找到

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章