• Leszek Swirski's avatar
    [maglev] Allow deopts from registers and untagged values · 213194f7
    Leszek Swirski authored
    Remove the "bad idea" of spilling whenever there's a deopt, and instead
    use the deoptimizer's register support.
    
    In addition, allow untagged int32 inputs into deopts -- if tagging these
    overflows, then the deoptimizer will automagically create a HeapNumber
    for us. Hooray for code reuse!
    
    Drive-bys:
        1. Print input locations for deopt checkpoints.
        2. Fix ordering of UpdateUse(input)/UpdateUse(deopt) to match the
           use marker.
    
    Bug: v8:7700
    Change-Id: I8069f5bc1bdcd7746a516c7a5cc7e26a15d4e5cb
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578805Reviewed-by: 's avatarVictor Gomes <victorgomes@chromium.org>
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#79950}
    213194f7
Name
Last commit
Last update
..
DEPS Loading commit data...
OWNERS 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.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...