• Jakob Linke's avatar
    [maglev] Deopt on overflow in >>> · 24e60017
    Jakob Linke authored
    Re-enable the int32 fast path for ShiftRightLogical, but account for
    Maglev's missing signed/unsigned representation tracking by a)
    removing rhs==0 as the identity value (a shift by 0 is still a
    signed-unsigned conversion) and b) deoptimizing if the result cannot
    be converted to a non-negative smi.
    
    Note this is not a deopt loop, since a non-smi result will change the
    feedback to kSignedSmallInputs (from kSignedSmall).
    
    To fix this properly, we should track signed/unsigned representations
    and convert the result to a heap number if it doesn't fit within smi
    range.
    
    Bug: v8:7700
    Change-Id: Ifd538d227a6f1290eb7f008d9bfad586ff91ea0f
    Fixed: v8:13251
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3876366Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Commit-Queue: Jakob Linke <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#83025}
    24e60017
Name
Last commit
Last update
..
DEPS Loading commit data...
OWNERS Loading commit data...
maglev-assembler-inl.h Loading commit data...
maglev-assembler.h Loading commit data...
maglev-basic-block.h Loading commit data...
maglev-code-gen-state.h Loading commit data...
maglev-code-generator.cc Loading commit data...
maglev-code-generator.h Loading commit data...
maglev-compilation-info.cc Loading commit data...
maglev-compilation-info.h Loading commit data...
maglev-compilation-unit.cc Loading commit data...
maglev-compilation-unit.h Loading commit data...
maglev-compiler.cc Loading commit data...
maglev-compiler.h Loading commit data...
maglev-concurrent-dispatcher.cc Loading commit data...
maglev-concurrent-dispatcher.h Loading commit data...
maglev-graph-builder.cc Loading commit data...
maglev-graph-builder.h Loading commit data...
maglev-graph-labeller.h Loading commit data...
maglev-graph-printer.cc Loading commit data...
maglev-graph-printer.h Loading commit data...
maglev-graph-processor.h Loading commit data...
maglev-graph-verifier.h Loading commit data...
maglev-graph.h Loading commit data...
maglev-interpreter-frame-state.h Loading commit data...
maglev-ir-inl.h Loading commit data...
maglev-ir.cc Loading commit data...
maglev-ir.h Loading commit data...
maglev-regalloc-data.h Loading commit data...
maglev-regalloc.cc Loading commit data...
maglev-regalloc.h Loading commit data...
maglev-register-frame-array.h Loading commit data...
maglev-vreg-allocator.h Loading commit data...
maglev.cc Loading commit data...
maglev.h Loading commit data...