看过LLVM源代码的同学应该都知道,LLVM是用C++编写的,而且它主要都是由一个个lib构成的。
那么,为什么呢?为什么要如此侧重于库的设计?
LLVM is an infrastructure, a collection of useful compiler technology that can be brought to bear on specific problems (like building a C compiler, or an optimizer in a special effects pipeline).1
自由化的定制能力
让我们来看一个优化器的例子:
- 读入LLVM IR
- 输出更优的LLVM IR
LLVM库设计的优势:自由定制与优化
LLVM采用库的设计,旨在提供灵活的定制能力,允许开发者根据需求选择和组合优化器pass。这种设计使得用户能自由调整优化顺序,针对特定问题创建自定义pass,并确保最终可执行文件只包含实际使用的功能,降低开销。同时,库设计有助于问题定位,简化编译器系统的复杂性,提供工具帮助开发者诊断和修复问题。
订阅专栏 解锁全文
415

被折叠的 条评论
为什么被折叠?



