2d3f21cfd4
Lazy deopts are always after calls, so force them to spill their inputs. This would normally be the case anyway, except for deferred calls, which don't tell the register allocator to spill like normal calls do. This makes lazy deopt regalloc always spill its inputs and use their spill slot, but unlike calls, this doesn't additionally clear the register, so subsequent nodes can continue using the register cached value without having to reload it. As drive-bys, fix the Throw* opcodes to have the Throw property, and use detail::DeepForEachInput in a couple of extra locations (including for lazy deopts). Bug: v8:7700 Change-Id: I89b04f17ca781d4f69ff0ed07566fa583aa677e6 Fixed: chromium:1364074 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3899009 Reviewed-by: Jakob Linke <jgruber@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Linke <jgruber@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#83293} |
||
---|---|---|
.. | ||
regress-1359382.js | ||
regress-1359723.js | ||
regress-1359928.js | ||
regress-1363450.js | ||
regress-1364074.js |