• Thibaud Michaud's avatar
    [regalloc] Do not resolve control-flow for deopt · d806ca7b
    Thibaud Michaud authored
    Connecting moves can be inserted in the gap of the last instruction of a
    block by the register allocator. The implicit assumption is that the
    last instruction does not have any operand, so that the connecting move
    does not invalidate any use of the destination operand.
    Deoptimization breaks this assumption as it both terminates its block
    and has operands. Omit the connecting move in this case to avoid
    invalidating the deopt operands.
    
    R=nicohartmann@chromium.org
    
    Bug: v8:12218
    Change-Id: Icce8e455949b19338ec7255dbb9b37963e857a6f
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3211572Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
    Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#77341}
    d806ca7b
register-allocator.cc 198 KB