• George Wort's avatar
    Make profile-guided optimization of builtins more configurable · 0e127bce
    George Wort authored
    Introduce get_hints.py and combine_hints.py in order to make
    the interpretation of basic block counts into hints more
    configurable and explicit, as well as allowing more accurate
    and consistent methods of combining multiple profiles.
    
    get_hints.py allows for the minimum count and threshold ratio
    values to be easily altered for different profiles, while
    combine_hints.py allows the hints produced from different
    benchmarks and threshold values to be easily and sensibly
    combined.
    
    Simply summing together basic block counts from different
    benchmarks could previously lead to a longer running benchmark
    overshadowing multiple shorter benchmarks with conflicting
    hints.
    
    Allowing alteration of the current threshold values gives a
    doubling of performance, while the new method of combining
    distinct profiles can double the performance improvement of the
    secondary benchmark while losing as little as 4% of the
    improvement gained in the primary benchmark.
    
    Design doc: https://docs.google.com/document/d/1OhwZnIZom47IX0lyceyt-S9i8AApDB0UqJdvQD6NuKQ/edit?usp=sharing
    
    Bug: v8:10470
    Change-Id: I1c09d1eabfdda5ed6794592e2c13ff8b461be361
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545181Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
    Commit-Queue: George Wort <george.wort@arm.com>
    Cr-Commit-Position: refs/heads/main@{#80282}
    0e127bce