当前位置:  开发笔记 > 编程语言 > 正文

LLVM的最大好处是什么?

如何解决《LLVM的最大好处是什么?》经验,为你挑选了3个好方法。

有没有人有LLVM,llvm-gccClang的经验

llvm背后的整个想法对我来说似乎很有趣,我很想知道它的表现如何.如果工具还没有准备好生产,我只是不想花很多时间去尝试工具.

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

非常感谢!



1> Louis Gerbar..:

关于LLVM,我不能说足够好的东西.与我看过的其他编译器项目相比,它非常容易使用.我不是编译人员,但是当我对LLVM或clang的某些限制感到沮丧时,通常很容易潜入并改变它.

我们(Nate Begeman,我自己和其他一些人)编写了PPC后端,没有真正的编译器设计经验,但它看起来很简单,非专家可以接近它.我们对PPC组装非常熟悉,但我们仍然非常难以置信,我们在业余时间的几周内设法输出了LLVM-gcc输出PPC代码.绝对是我编译过的最令人满意的Hello World之一.



2> Jon Harrop..:

我已经和LLVM一起玩了好几个月了.我写了两篇OCaml期刊文章,涵盖了OCaml编程语言中LLVM的使用.这特别有趣,因为OCaml语言非常适合编写编译器,并且具有丰富的功能强大且成熟的工具和库,用于解析等等.

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

LLVM只有两个抱怨.首先,它会在出现任何错误时使用abort()而不是引发异常.这是其作者的一个深思熟虑的设计决策,他们正在努力从LLVM中删除所有异常使用,但是当尝试调试使用LLVM的编译器时,它无法从OCaml中获得回溯:您的程序只是因为LLVM的文本解释而死亡但是没有关于源中错误发生位置的线索.其次,LLVM的编译库非常庞大(20Mb).我认为这是由于C++引起的膨胀,但它使编译变得非常缓慢.

编辑:我在LLVM上的工作最终创建了一个高性能的高级垃圾收集虚拟机.免费下载在这里,并检查了相应的基准(哇!).@Alex:我会尽快为你准备好BF编译器.


你可以发布BF编译器吗?我写了一个BF-> C语言翻译器,我认为它和你在一次通过中一样好,并且llvm-gcc在真正的大程序中非常糟糕.不过,他们有点不公平.

3> 小智..:

我已经初步了解了LLVM并且完成了本教程,让我对它的潜力感到非常兴奋; 我可以使用它来相对轻松地将JIT构建到应用程序中的想法引起了我的注意.

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

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有