HomePhabricator

[llvm] Update default cutoff threshold for machine function splitter.

Authored by snehasish on Oct 8 2020, 5:36 PM.

Description

[llvm] Update default cutoff threshold for machine function splitter.

Based on internal testing at Google we found that setting the profile
summary cutoff threshold to 999950 yields the best results in terms of
itlb and icache metrics (as observed on Intel CPUs).

*default* = Split out code if no profile count available for block
*size-%* = The fraction of bytes split out of .text and .text.hot
*itlb* = Misses per kilo instructions (MPKI) for itlb
*icache* = Misses per kilo instructions (MPKI) for L1 icache

Search1

cutoffsize-%itlbicache
default42.58610.08221512.46363
99999944.93500.07671942.44416
99995050.06600.0757442.4091
99950056.91580.0825642.4188
99500063.86250.08149272.42832
99000071.73140.1069062.57785

Search2

cutoffsize-%itlbicache
default2.88450.6267124.73245
9999993.32910.6023094.70045
9999503.85770.5878424.71632
9995004.41700.635774.68351
9950005.10200.6579694.82272
9900005.71530.7191225.39496

Differential Revision: https://reviews.llvm.org/D89085

Details