LLVM的最大好处是什么

What are the greatest benefits of LLVM?

本文关键字:是什么 大好 LLVM      更新时间:2023-10-16

有人有LLVMLLVM gccClang的经验吗?

llvm背后的整个想法对我来说似乎很有趣,我很想看看它的表现。如果工具还没有准备好投入生产,我只是不想浪费大量时间来尝试这些工具。

如果你有使用这些工具的经验,你觉得它们怎么样?您遇到了哪些主要限制?最大的好处是什么?

非常感谢!

关于LLVM,我说得再好也不为过。与我看过的其他编译器项目相比,它很容易使用。我不是一个编译器爱好者,但当我对LLVM或clang的某些限制感到沮丧时,通常很容易深入并更改它。

我们(Nate Begeman,我自己和其他一些人)在没有编译器设计经验的情况下编写了PPC后端,但它看起来足够简单,非专家可以使用它。我们非常熟悉PPC汇编,但仍然非常令人难以置信的是,我们在几周的业余时间内成功地让LLVM gcc输出PPC代码。绝对是我整理过的最令人满意的Hello World之一。

我已经断断续续地玩LLVM好几个月了。我写了两篇OCaml Journal文章,介绍了OCaml编程语言中LLVM的使用。这一点特别有趣,因为OCaml语言是编写编译器的理想选择,并且有大量强大而成熟的工具和库用于解析等

总的来说,我的经历非常积极。LLVM做到了它在锡上说的,并且非常容易使用。生成的代码的性能非常出色。我写的一个程序是一个简单的Brainf*ck小编译器,它可以生成我测试过的任何编译器中最快的可执行文件(包括GCC)。

我对LLVM只有两个不满。首先,每当出现任何问题时,它都会使用abort(),而不是引发异常。这是其作者深思熟虑的设计决定,他们正努力从LLVM中删除所有异常的使用,但这使得在尝试调试使用LLVM的编译器时无法从OCaml获得回溯:您的程序只会随着LLVM的文本解释而消亡,但不知道错误发生在源代码中的位置。其次,LLVM的编译库非常大(20Mb)。我认为这是由于C++引起的膨胀,但它使编译非常缓慢。

编辑:我在LLVM上的工作最终创建了一个高性能的高级垃圾收集虚拟机。在这里免费下载并查看相应的基准测试(哇!)@亚历克斯:我会尽快给你找个BF编译器。

我已经初步了解了LLVM,完成本教程让我对它的潜力感到非常兴奋;我可以用它相对轻松地在应用程序中构建JIT,这让我很兴奋。

我还没有深入到能够就它的局限性、稳定性、性能等提供任何有用的意见。我知道这在所有方面都很好,但那纯粹是道听途说。

您询问了有关工具的问题,我想提到的是,有适用于Eclipse CDT(适用于Windows、Linux和Mac)的LLVM插件。它很好地将LLVM集成到IDE中,用户不需要了解LLVM的任何信息。按下build按钮就足以生成.bc和可执行文件(以及用户不可见的后台中间文件)。

最新版本可通过官方Eclipse更新网站获得:http://download.eclipse.org/releases/mars

它在编程语言下,被命名为"C/C++LLVM系列编译器构建支持"。