可以从LLVM-IR自动生成llvm c ++ api代码吗?

时间:2012-03-23 08:55:53

标签: llvm clang llvm-ir llvm-c++-api

clang 3.0在线演示页面http://llvm.org/demo/index.cgi提供输出LLVM C ++ API代码的选项,“代表输入程序的LLVM-IR。

“生成LLVM C ++ API代码”输出一个clang选项(如果是,它是什么)?

或者它是一个llvm工具选项(哪一个)?

是否可以通过LLVM-IR输入执行相同的操作?基本上我希望看​​到生成特定llvm-ir序列所需的正确llvm c ++ api调用。我想通过示例向后学习,而不是从文档中向前学习。

手册页和--help和--help-hidden for clang,llvm-as和llvm-dis没有显示任何明显的内容。

编辑:好了,现在我在该网页的输出中看到“由llvm2cpp生成”。但是我在最近的llvm版本中找不到这个工具,只有旧版本,在llvm2cpp中有一个2.9和3.0的新工具?

2 个答案:

答案 0 :(得分:9)

是。 C ++后端是执行此操作的工具。试试“llc -march = cpp foo.bc”

答案 1 :(得分:2)

我遇到了完全相同的问题,看到CPPBuilder提到了几次。不幸的是,这种方法不再适用于最近的LLVM版本,因为CPPBackend在3.8和3.9之间被删除。

如果你想要CPP后端你(i)必须配置llvm并在初始配置期间将cppbackend添加到-DLLVM_TARGETS_TO_BUILD并且(ii)运行llvm< = 3.8。

该功能已被删除,因为它没有使用IRBuilder,几乎没有人使用它。我的解决方案是依靠旧版本获得灵感,然后自己实现。