【发布时间】:2014-04-25 15:10:03
【问题描述】:
我很好奇是否有任何项目可以获取 LLVM 解析树并从中重新生成源代码。我特别想到 C/C++。
【问题讨论】:
-
什么是“LLVM 解析树”?是 Clang AST(那么答案是肯定的,有基于 clang 的源到源工具)?或者是 LLVM IR(那么答案是 - 你不能重新生成完全相同的源,但是有/曾经有几个项目..)
标签: c++ c clang llvm parse-tree
我很好奇是否有任何项目可以获取 LLVM 解析树并从中重新生成源代码。我特别想到 C/C++。
【问题讨论】:
标签: c++ c clang llvm parse-tree
如果“LLVM 解析树”是来自 clang 的 AST
是的,您可以从 clang 的 AST 重新生成源代码。一些参考资料:
如果“LLVM 解析树”是 LLVM IR
有几个项目可以从 LLVM IR 生成源代码。第一个,“C 后端”was dropped in LLVM 3.1。
现在有几个项目可以从 LLVM IR 生成 C:
复活的“C 后端” 由 Roel Jordans
[LLVMdev] [RFC] Resurrecting the C back-end(邮件列表帖子),通过引用的 phoronix 新闻
“C++ -> LLVM IR -> Emscripten -> asm.js -> C” 链
Prototype of an LLVM IR => C compiler ("c backend"),来自 LLVM 周刊 - #15
【讨论】: