• Stephan Herhut's avatar
    [regalloc] Splinter to the end of interval if value dies · 19b15382
    Stephan Herhut authored
    If a value dies in deferred code, there is no need to reload it at the
    end of the deferred code, as it will be dead in the non-deferred code
    that follows in control flow order. In the linearized view of register
    allocation, this is encoded as a lifetime gap (or the end of an
    interval).
    
    Moreover, this may lead to wrong assignments if the value dies
    between two deferred blocks and we leave a non-splintered live
    range in the middle of deferred code.
    
    Bug: chromium:915975
    Change-Id: Iec68fe86f0dfbbac612635a637f3239475906d14
    Reviewed-on: https://chromium-review.googlesource.com/c/1433784
    Commit-Queue: Stephan Herhut <herhut@chromium.org>
    Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#59068}
    19b15382
live-range-separator.cc 7.13 KB