1.1 EventCategory
枚举类型 EventCategory,用于表示不同的事件类别(Event Category),GccTrace代码处理框架中的分类标识
enum EventCategory {
TU,
PREPROCESS,
FUNCTION,
STRUCT,
NAMESPACE,
GIMPLE_PASS,
RTL_PASS,
SIMPLE_IPA_PASS,
IPA_PASS,
UNKNOWN
};1.2 GCC 阶段与 EventCategory 的映射
2.1 PREPROCESS
统计PREPROCESS?
为什么大型 C/C++ 项目的构建优化必须从预处理入手?
效应放大:源头的微小问题(如循环包含)在预处理阶段会被指数级放大。
时间占比:预处理往往占据了 30%-70% 的构建时间,是名副其实的“复杂性黑洞”。
工具革新:不同于传统的
-ftime-report,GccTrace 能够深入文本处理层面,统计PREPROCESS数据,填补了传统工具在精细度上的空白。
结论:GccTrace 让预处理阶段从“黑盒”走向“透明”。通过数据驱动优化,我们有望削减 50%+ 的预处理耗时。这不仅是工具的胜利,更是构建优化方法论的升级。
3.1 FUNCTION
GCC的编译过程大致分为预处理、编译(前端处理、中间代码生成和优化)、汇编和链接几个阶段。其中,编译阶段又可以细分为多个步骤,例如语法分析、语义分析、中间代码生成(如GIMPLE、RTL)、优化等。函数作为代码的基本单元,在每个阶段都有不同的处理。
待更新