后端Pass简介——BasicBlockPathClothing,BasicBlockSections
BasicBlockPathClothing
该 Pass 目的是 -fbasic-block-sections=list
编译选项,它的目标是:
- 根据运行时 profile 或离线分析的热点路径对基本块进行聚类;
- 通过克隆热路径,让热点路径在 layout 上连续,优化分支预测和指令缓存命中率;
- 后续 BasicBlockSections Pass 会根据克隆后 block 的 BBID 来创建 section,对每段代码独立放置、优化布局。
一句话:
BasicBlockPathCloning 是一个 LLVM 中的 MachineFunction-level pass,依据 profile 指定的基本块执行路径克隆 CFG 中的基本块序列,从而支持后续的 layout 优化和 section 分离。
评论