gpt4 book ai didi

将 LLVM-IR 转换为类 C 语言

转载 作者:太空狗 更新时间:2023-10-29 16:07:47 27 4
gpt4 key购买 nike

我正在从事一个项目,我必须编写代码将 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 代码?

提前致谢。

最佳答案

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

The C backend has been removed. It had numerous problems, to the point of not being able to compile any nontrivial program.

2012 年 8 月 thread on llvmdev讨论了恢复 C 后端,但我认为它最终没有任何用处。

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

关于将 LLVM-IR 转换为类 C 语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19411568/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com