LLVM
LLVM项目是模块化、可重用的编译器以及工具链技术的集合。
传统的编译器架构分为前端、优化器、后端。但是LLVM将前端和后端分离,全部转化为LLVM的中间代码表示,这样的好处:
- 这样加入新的编程语言和硬件设备,只需要新加入前端后端即可。
- 优化在中间代码中执行,实现和前后端解耦,不受新增前后端的影响。

Clang
基于LLVM架构的C/C++/Objective-C编译器前端。
相对于GCC而言,具有编译速度快、占用内存小、模块化设计、诊断信息可读性强、易于拓展等优点。

参考资料:
[1] https://www.jianshu.com/p/1367dad95445