5d95bd39ca
The problem was that synchronous Maglev OSR potentially caused code deoptimization during compilation dependency finalization; this led to a lazy deopt when returning from the call to Runtime_CompileOptimizedOSRFromMaglev. However, a lazy deopt is disallowed at this point, since a) Maglev doesn't support marking an opcode as both lazy- and eager deopt, and b) the JumpLoop opcode is already marked as eager deopt since that's how OSR is implemented under the hood. See also the comment in runtime-compiler.cc. We fix this by changing synchronous Maglev-to-Turbofan OSR behavior s.t. actual OSR compilation is triggered from Ignition (and not from Maglev). In other words, when synchronous OSR is requested: 1. trigger an eager deopt from Maglev to Ignition by returning a non-null code object from Runtime_CompileOptimizedOSRFromMaglev. 2. Ignition handles the pending OSR compile request (through osr_urgency). This CL also reverts previous partial fixes: This reverts commit |
||
---|---|---|
.. | ||
benchmarks | ||
bigint | ||
cctest | ||
common | ||
debugger | ||
debugging | ||
fuzzer | ||
fuzzilli | ||
inspector | ||
intl | ||
js-perf-test | ||
memory | ||
message | ||
mjsunit | ||
mkgrokdump | ||
mozilla | ||
test262 | ||
torque | ||
unittests | ||
wasm-api-tests | ||
wasm-js | ||
wasm-spec-tests | ||
webkit | ||
BUILD.gn | ||
OWNERS |