6

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 调用。我想通过示例向后学习,而不是从文档中向前学习。

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

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

4

2 回答 2

9

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

于 2012-03-23T09:11:57.417 回答
2

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

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

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

于 2017-01-23T21:13:59.193 回答