假设有人想要使用LLVM静态地编译给定的语言,那么首先将它翻译成C,然后使用CLang而不是直接的IR翻译,最大的区别(优缺点)是什么。
我猜最明显的答案是,通过使用一个了解源语言的前端,想出一个优化的IR表示比期望CLang在生成的C中执行更容易。
我漏掉了什么吗?
发布于 2013-03-01 09:25:17
使用通用C后端的优点:
不利之处是:
gcc的某些部分,等等。没有它,就可以单独使用现有的LLVM,并且依赖关系可以保持自成体系。在大多数情况下,优化不是问题。Clang有意地产生了一个极不理想的LLVM IR。LLVM应该关注所有的优化,而不是前端。当然,除非您可以进行一些高级别的优化,但是它们将不依赖于您的后端选择。
https://stackoverflow.com/questions/15150116
复制相似问题