https://clang.llvm.org/index.html 通用性和效率是否可以兼得? LLVM:LLVM是项目全名,该项目是模块化、可重用的编译器以及工具链技术的集合。 LLVM架构: 不同的前端后端使用统一的
https://clang.llvm.org/index.html
通用性和效率是否可以兼得?
LLVM:LLVM是项目全名,该项目是模块化、可重用的编译器以及工具链技术的集合。
LLVM架构:
- 不同的前端后端使用统一的中间代码LLVM Intermediate Representation。
- 如果需要支持一种新的编程语言,那么只需要实现一个新的前端。
- 如果需要支持一种新的硬件设备,那么只需要实现一个新的后端。
- 优化阶段是一个通用阶段,不需要对其进行修改。
- 相比之下,GCC的前后端耦合紧密,故其为了支持一门新的语言或者平台,十分困难。
Clang:LLVM的一个子项目,基于LLVM架构的C/C++/Objective-C编译器前端。
相比于GCC,Clang有如下优点: