• 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
Name
Last commit
Last update
..
arm Loading commit data...
arm64 Loading commit data...
ia32 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
s390 Loading commit data...
x64 Loading commit data...
OWNERS Loading commit data...
code-generator-impl.h Loading commit data...
code-generator.cc Loading commit data...
code-generator.h Loading commit data...
frame-elider.cc Loading commit data...
frame-elider.h Loading commit data...
gap-resolver.cc Loading commit data...
gap-resolver.h Loading commit data...
instruction-codes.h Loading commit data...
instruction-scheduler.cc Loading commit data...
instruction-scheduler.h Loading commit data...
instruction-selector-impl.h Loading commit data...
instruction-selector.cc Loading commit data...
instruction-selector.h Loading commit data...
instruction.cc Loading commit data...
instruction.h Loading commit data...
jump-threading.cc Loading commit data...
jump-threading.h Loading commit data...
live-range-separator.cc Loading commit data...
live-range-separator.h Loading commit data...
move-optimizer.cc Loading commit data...
move-optimizer.h Loading commit data...
register-allocator-verifier.cc Loading commit data...
register-allocator-verifier.h Loading commit data...
register-allocator.cc Loading commit data...
register-allocator.h Loading commit data...
unwinding-info-writer.h Loading commit data...