• Clemens Backes's avatar
    [compiler] Fix mid-tier register allocator issue · d757cd5c
    Clemens Backes authored
    If an output operand has "same as input" policy, we cannot assume that
    it's input 0. Instead we should look at the {input_index}.
    
    The bug manifests on Wasm select instructions, where the input index is
    actually 2 and not 0.
    
    In order to test this better, we introduce the a new
    --turbo-force-mid-tier-regalloc flag, which always uses the mid-tier
    register allocator. Otherwise the bug would only manifest on huge
    functions.
    
    R=mslekova@chromium.org
    CC=​thibaudm@chromium.org
    
    Bug: v8:12330
    Change-Id: I6a005a48bbd2aba354dc99fed587bffce24c8839
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3234722Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#77495}
    d757cd5c
Name
Last commit
Last update
..
arm Loading commit data...
arm64 Loading commit data...
ia32 Loading commit data...
loong64 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
riscv64 Loading commit data...
s390 Loading commit data...
x64 Loading commit data...
DIR_METADATA 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...
mid-tier-register-allocator.cc Loading commit data...
mid-tier-register-allocator.h Loading commit data...
move-optimizer.cc Loading commit data...
move-optimizer.h Loading commit data...
register-allocation.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...
spill-placer.cc Loading commit data...
spill-placer.h Loading commit data...
unwinding-info-writer.h Loading commit data...