WWDC2010 Session312 LLVM Compiler的新特性

LLVM(Low Level Virtual Machine)是新的compiler环境,用C++编写。LLVM project在University of Illinois at Urbana-Champaign大学的Vikram Adve和Chris Lattner的领导下,开始于2000年。当时,Lattner作为助教和硕士生刚刚加入此大学。后来在2005年,Lattner受雇于Apple。

Compiler Landscape

目前的三个编译器的架构:

3 compilers

Xcode 3.2.3中的LLVM Compiler并不支持C++。你只能使用LLVM-GCC。现在Xcode 4中的LLVM Compiler 2.0 已经完全支持C++。这就是为什么Xcode4的默认compiler是LLVM Compiler。不建议大家采用GCC 4.2,因为Apple因为不再fix GCC的bug了。

iOS4中的WebKit, JavaScriptCore, OpenSSL都是使用LLVM编译的。性能提升:Open SSL 28%, JavaScriptCore 11%。

LLVM Compiler

1. 编译快 - Debug builds大约是以前的3倍。

2. 更易使用

3. 优美而有意义的错误信息

Clang Frontend是C家族编程语言的解析器,可用于C, Objective-C, C++.

Clang 被好几个工具所用到: LLVM Compiler, Xcode Static Analyzer, Xcode 4, LLDB Debugger, OpenCL. Clang 被集成到了Xcode 4中完成下列功能:source code indexing, syntax highlighting, code completion, live warnings and Fix-its.
Xcode Static Analyzer通过分析静态代码,自动发现bug(并非编译时)。

LLVM Compiler 2 C++的好处

1. 更快的编译速度

2. 优美而有意义的错误信息

3. 二进制完全兼容

4. 更好的遵守C++标准

5. 支持Objective-C++

性能C++编译性能: 快25%C++内存消耗: 少33%
将来的C++ '0x Standard

将会提供libc++来支持新的C++ standard.

libc++: A New C++ Standard library

我认为每个用Xcode的程序员都应该使用LLVM。

WWDC2010 Session312 What's New in the LLVM Compiler

Author: Chris Lattner - LLVM Chief Architect

posted on 2011-04-05 20:29  VinceOniPhone  阅读(997)  评论(0编辑  收藏  举报

导航