你好LLVM传递没有加载

时间:2012-02-11 03:13:14

标签: macos llvm

我正在关注在OSX Lion上运行的LLVM的Hello pass教程。我在lib/Transforms/Hello目录中创建了make,创建了bitcode,然后在Hello目录中执行了此操作:

$ opt -load ../../../Debug/lib/LLVMHello.dylib -hello < hello.bc > /dev/null
opt: <stdin>: Unknown instruction

我试图搜索这个,但没有找到任何东西。有什么建议吗?

我不确定这是否重要,但我使用的是gcc 4.2.1。

由于

1 个答案:

答案 0 :(得分:2)

这意味着您的llvm-gcc和LLVM不同步/不兼容。使用错误的LLVM,即使简单的lli也会失败:

$ lli hello.bc 
lli: hello.bc: Unknown instruction

您可以获取与编译器对应的LLVM,也可以使用基于LLVM的编译器。对于前者,您可以使用--version获取标记,例如:

$ llvm-gcc-4.2 --version
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc.
build 5658) (LLVM build 2335.15.00)

表示您可以从

获取相应的LLVM
http://llvm.org/svn/llvm-project/llvm/tags/Apple/llvmCore-2335.15

获得匹配的LLVM后,一切顺利:

$ Debug/bin/lli hello.bc 
hello world
$ Debug/bin/opt -load Debug/lib/LLVMHello.dylib -hello <hello.bc  >/dev/null
Hello: main