https://clang.llvm/index.html
通用性和效率是否可以兼得?
LLVM:LLVM是项目全名,该项目是模块化、可重用的编译器以及工具链技术的集合。
LLVM架构:
- 不同的前端后端使用统一的中间代码LLVM Intermediate Representation。
- 如果需要支持一种新的编程语言,那么只需要实现一个新的前端。
- 如果需要支持一种新的硬件设备,那么只需要实现一个新的后端。
- 优化阶段是一个通用阶段,不需要对其进行修改。
- 相比之下,GCC的前后端耦合紧密,故其为了支持一门新的语言或者平台,十分困难。
Clang:LLVM的一个子项目,基于LLVM架构的C/C++/Objective-C编译器前端。
相比于GCC,Clang有如下优点:
- 编译速度快:在某些平台上,Clang的编译速度显著的快过GCC,Debug模式下编译OC的速度比GCC快3倍;
- 占用内存小,Clang所占用内存是GCC的五分之一左右;
- 模块化设计,Clang采用基于库的模块化设计,易于IDE集成及其他用途的重用;
- 诊断信息可读性强:在编译过程中,Clang创建并保留了大量详细的元数据,有利于调试和错误报告;
- 设计清晰简单,容易理解,易于扩展增强;
更多推荐
【clang】一款新的开源的跨平台的C语言编译器
发布评论