• Thibaud Michaud's avatar
    [regalloc] Sort ranges for PopulateReferenceMaps · 5a1c1b7e
    Thibaud Michaud authored
    PopulateReferenceMaps caches an iterator for the reference maps list,
    which allows skipping many iterations when the live ranges are mostly
    sorted.
    
    When they are not sorted however, the complexity increases significantly
    since we have to iterate from the beginning of the reference maps list
    for each live range.
    
    We observed a real-world wasm GC function where this phase takes up 90%
    of the compilation time because of this, which drops to below 2% when
    the ranges are sorted first.
    
    R=sigurds@chromium.org
    CC=​​jkummerow@chromium.org
    
    Change-Id: I829c909c06e5a1daee0f8d10c156d0a382af9ed0
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2985339
    Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
    Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#75420}
    5a1c1b7e
register-allocator.cc 197 KB