LLVM的独特设计和实现

标签: llvm 设计 | 发表时间:2012-05-30 17:54 | 作者:
出处:http://www.iteye.com
过去五年,LLVM从一个学术研究项目进化成C、C++和Objective C编译器的通用后端。 成功的关键是性能和适应能力,两者都得益于LLVM独特的设计和实现。

LLVM项目主要作者Chris Lattner在Dr.Dobb's上刊文讲述了LLVM的设计。他说:
引用
Clang编译器相比GCC编译器具有不少优势,因为 LLVM提供了某些独一无二的能力。LLVM区别于其它编译器的主要地方是其内部架构。

从2000年起, LLVM就设计作为一套可复用库,拥有定义明确的接口。而当时开源语言的实现是设计作为特定目的的工具,使用单一可执行文件,如GCC就很难复用静态编译器中的解析器,脚本语言也是如此。

LLVM 是 Low Level Virtual Machine (低级虚拟机)的简称,这个库提供了与编译器相关的支持,可以作为多种语言编译器的后端来使用,能够进行程序语言的编译期优化、链接优化、在线编译优化、代码生成。



感谢 MnouW 投递这篇资讯

资讯来源: Solidot

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [llvm 设计] 推荐:

LLVM的独特设计和实现

- - ITeye资讯频道
过去五年,LLVM从一个学术研究项目进化成C、C++和Objective C编译器的通用后端. 成功的关键是性能和适应能力,两者都得益于LLVM独特的设计和实现. LLVM项目主要作者Chris Lattner在Dr.Dobb's上刊文讲述了LLVM的设计. Clang编译器相比GCC编译器具有不少优势,因为 LLVM提供了某些独一无二的能力.

RMS谈GCC、LLVM和Copyleft

- - Solidot
ESR(Eric S.Raymond)在GCC邮件列表上发贴预言,LLVM/Clang编译器将在3到5年内威胁到GCC的统治地位,认为GCC编译器的反插件政策正成为一大障碍. 虽然Clang尚未达到GCC的成熟度,但在某些方面它拥有比GCC更出色的特性,例如错误信息. ESR建议GCC应允许非自由的插件.

GCC、LLVM-GCC、DragonEgg和Clang编译性能对比

- allengaller - Solidot
Phoronix利用Phoronix Test Suite测试了GCC 4.2.1、4.3.0、4.4.0、4.5.0、GCC 4.6.0 2010-10-30开发预览版,以及LLVM-GCC 2.8、LLVM DragonEgg 2.8和Clang 2.8编译器的编译性能. 测试结果显示,与新贵LLVM-GCC和Clang相比,有二十多年历史的GCC编译器确实比较慢 虽然LLVM和Clang的新版本提供了完整的C++支持,并且能编译Linux kernel,但它们目前还达不到取代成熟GCC的程度,Clang或DragonEgg还无法完成某些常见任务的编译,性能也未能如意.

編譯器技術的虛擬化發展!?淺談LLVM

- ĐƋɳƞѵїχ - iOS Bible
撇開特殊的情況不說,一般而言從程式碼的撰寫到應用程式的完成,最後總不免地需要進行一道程式碼『編譯』的動作. 而這項編譯的工作,其實是透過『編譯器』的演算處理來完成. 其編譯的主要目的,是要把本來撰寫者原本較容易閱讀的程式語法轉換成硬體機械可以直接執行的指令. 以C語言為例子來說,編譯的動作其實指的就是從C語言轉換至組合語言的這個過程.

LLVM的调用协议与内存对齐

- chacoo - C++博客-首页原创精华区
在设计一门语言与其他语言交互的API与ABI(Application Binary Interface,二进制接口)时,调用协议和内存对齐是两个无从回避的问题. 本文将讨论如何在LLVM上生成正确的内存对齐和调用协议的代码. 在这里为了方便和标准起见,假定应用LLVM的语言的Extending和Embedding的对象都是C.

为了设计而设计

- - 幻风阁|kent.zhu'sBlog
我有个习惯,每天晚上睡前会搜罗一遍最新的App用用. 最开始的时候ios的App还相对比较朴实,强调功能的实用性,后来不知何故吹起一阵ios的App必须足够精美的怪风. 于是乎,各类App纷纷上演换装游戏,一个比一个做的精美,即使是一个很工具性的应用也把自己浓妆艳抹的往坐台小姐的风格搞……. 上周末跟Tony和Angela在下厨房喝茶闲聊,我说目前的移动产品设计可以分为2类,一类是做给用户用的,一类是做给设计师们欣赏与收藏的.

杯盖设计

- Yu - 创意设计-有趣、时尚、另类的创意
微向上的设计,在倒水完毕的时候可以让水滴顺着杯盖回流到杯子中,而不会随意的滴下来. 虽然是细小的设计,但是考虑的却是生活的便利.

再设计Redesign

- Mark - 腾讯CDC
  一个网站的核心是它的功能和内容,而设计则决定了这些功能、内容如何被组织和展现出来.   对已成功的网站进行再设计——重新构造它的组织和展现形式是具有挑战性的. 偏偏有设计师喜欢迎难而上,尝试对facebook、google这些著名网站进行概念设计. 他们通常有两条思路,一是对现有问题挖掘然后改进,二是提出完全创新的想法.

简约设计

- - 淘宝网通用产品团队博客
写下这个标题,那么首先得要明确什么叫简约. 简约就是让用户操作简单,让用户更快的达到自己的目的. 一个产品在于解决一个需求,如何让用户最好的完成需求就成为一个产品经理首先得要解决的问题. 那么在日常工作中,我们又有什么可以做的呢. 在《简约至上》里面有四种策略,但是有的东西太高级了,在平时的工作未必能够用得上,所以我自己来提炼一下,看看日常工作中能够遇到并且可以解决问题的方法.