llvm-project
7f4febde - [BOLT][heatmap] Compute section utilization and partition score (#139193)

Commit
139 days ago
[BOLT][heatmap] Compute section utilization and partition score (#139193) Heatmap groups samples into buckets of configurable size (`--block-size` flag with 64 bytes as the default =X86 cache line size). Buckets are mapped to containing sections; for buckets that cover multiple sections, they are attributed to the first overlapping section. Buckets not mapped to a section are reported as unmapped. Heatmap reports **section hotness** which is a percentage of samples attributed to the section. Define **section utilization** as a percentage of buckets with non-zero samples relative to the total number of section buckets. Also define section **partition score** as a product of section hotness (where total excludes unmapped buckets) and mapped utilization, ranging from 0 to 1 (higher is better). The intended use of new metrics is with **production profile** collected from BOLT-optimized binary. In this case the partition score of .text (hot text if function splitting is enabled) reflects **optimization profile** representativeness and the quality of hot-cold splitting. Partition score of 1 means that all samples fall into hot text, and all buckets (cache lines) in hot text are exercised, equivalent to perfect hot-cold splitting. Test Plan: updated heatmap-preagg.test
Author
Parents
Loading