Making the Clang AST Leaner and Faster
6 months ago
- #Clang
- #C++
- #CompileTimeOptimization
- 现代C++代码库高度依赖模板,导致产生庞大的抽象语法树(AST)。
- Clang AST的最新改进使类型表示更小、更简单且创建速度更快。
- 构建时间优化包括stdexec最慢测试减少7%,Chromium构建速度提升5%。
- 该补丁移除了ElaboratedType,将修饰信息和限定符直接存储在RecordType中。
- NestedNameSpecifier现在采用紧凑的标记指针形式,降低了内存占用和唯一化成本。
- 新的表示法简化了模板实例化转换,在零开销的前提下丰富了AST。
- RecordType节点采用延迟创建机制,进一步优化了性能。