特性说明
当前的PGO profile不是上下文敏感的,内联函数的分支概率对于所有caller保持相同,并且实际大概率不同。这些次优profile会极大地影响一些下游优化,尤其是机器基本块布局优化和寄存器分配优化。针对以上问题,CSPGO通过设计在PGO后执行的post inline profiling过程,专门用来收集inline后的profile,称之为上下文敏感的反馈优化(context-sensitive PGO,CSPGO)。因此,在一个优化过程中会有两份profile文件,其中PGO的profile文件将用于内联、间接调用提升等优化,CSPGO的profile用于内联后的优化,例如基本块重排和寄存器分配优化。
父主题: CSPGO