• Thibaud Michaud's avatar
    [regalloc] Fix slot requirement for live ranges defined by a const · 0ee6f90a
    Thibaud Michaud authored
    Live ranges defined by a constant operand normally don't require a spill
    slot since they can just rematerialize the value from the constant. In
    the attached issue however, deoptimization adds an explicit slot
    requirement for a range that is defined by a constant operand. This case
    is not expected in the register allocator and we eventually hit a
    DCHECK.
    
    This fix allocates a new stack slot during the MeetRegisterConstraints
    and adds the missing gap move.
    
    Drive-by: remove dead method LiveRange::NextSlotPosition.
    
    R=sigurds@chromium.org
    CC=​nicohartmann@chromium.org
    
    Bug: chromium:1146880
    Change-Id: I08fbb890f2f3d9574196989cf3e5ef6232433484
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563689Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
    Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#73510}
    0ee6f90a
regress-1146880.js 570 Bytes