4

我正在做一个项目,我必须编写将 LLVM-IR 转换为类 C 语言的代码。这种语言的结构与 C 非常相似。在做了一些调查后,我发现 LLVM 的 3.0 版本之前存在一个名为 CBackend.cpp 的文件,负责将 LLVM-IR 转换为 C 代码。我要检查的是在我的 LLVM-IR 输入文件上运行这个 CBackend.cpp 文件并生成 C 代码。

执行此操作的命令是:llc -march=c -o code.c code.ll

其中 code.ll 文件是包含输入 llvm-ir 的输入文件,code.c 是包含生成的 C 代码的输出文件。

我面临的是,我的 ubuntu 系统上安装了 LLVM 版本 3.4svn,并且此版本中没有 CBackend.cpp 文件,因为该文件已升级为 CppBackend.cpp(将 LLVM-IR 转换为 C++)。我可以使用哪个命令在我的 LLVM-IR 输入文件上运行此 CBackend.cpp 文件以获取 LLVM 版本 3.4svn 中的相应 C 代码?

提前致谢。

4

1 回答 1

6

C 后端在 3.1 版中被删除,因为它没有得到维护并开始开发代码腐烂,成为一种负担。由于没有维护者加强,它被从树中删除。从3.1 的发行说明

C 后端已被删除。它有很多问题,以至于无法编译任何重要的程序。

2012 年 8 月,llvmdev 上的一个帖子讨论了恢复 C 后端,但我认为它最终没有任何用处。

您仍然可以下载 LLVM 3.0 版(从发布页面),构建它并查看 C 后端的运行情况,研究其代码等。对于您的特定目的 - 查看代码并弄清楚它是如何工作的,3.0 C 后端应该足够好。

于 2013-10-16T19:53:16.173 回答