将LLVM-IR转换为类似C语言

时间:2013-10-16 18:59:23

标签: c llvm llvm-ir

我正在开发一个项目,我需要编写代码将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代码?

提前致谢。

1 个答案:

答案 0 :(得分:6)

C版后端在版本3.1中被删除,因为它没有被维护并开始开发代码腐烂,成为负担。由于没有维护者加强,它已从树中删除。来自release notes of 3.1

  

C后端已被删除。到目前为止,它存在许多问题   无法编译任何重要的程序。

2012年8月,thread on llvmdev讨论了恢复C后端的问题,但我认为它不会在任何有用的地方结束。

您仍然可以下载LLVM 3.0版(来自releases page),构建它并查看C后端的运行情况,研究其代码等。为了您的特定目的 - 查看代码并弄清楚它是如何实现的工作,3.0 C后端应该足够好。