v8/test/mjsunit/maglev/regress
Jakob Linke 5d95bd39ca [maglev] Prevent lazy deopts during maglev's JumpLoop (=OSR)
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 21969e8e24.
This reverts commit 6bcbcfed5c.

Bug: chromium:1394279,v8:13585,v8:7700
Change-Id: I3d64aa39575ad806ba2623102092176ca160ef0b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4110740
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84922}
2022-12-19 09:13:06 +00:00
..
regress-6373.js [maglev] Fast path instanceof 2022-11-02 14:37:48 +00:00
regress-1359382.js
regress-1359723.js [maglev] Fix clobbered regs in TestUndetectable and more 2022-09-15 08:13:07 +00:00
regress-1359928.js
regress-1363450.js [maglev] Fix clobbered register in ThrowIfNotSuperConstructor 2022-09-15 11:33:07 +00:00
regress-1364074.js [maglev] Fix exception phi for receiver in constructors 2022-10-13 13:46:18 +00:00
regress-1368046.js [maglev] Use the parallel move resolver for handler trampolines 2022-10-04 09:55:20 +00:00
regress-1381663.js [maglev] Fix FunctionPrototypeCall for empty args 2022-11-07 14:08:34 +00:00
regress-1383712.js [maglev] Fix known type for HeapNumber CheckMaps 2022-11-14 14:22:19 +00:00
regress-1392936.js [maglev] Don't lower Function#call when there's no receiver 2022-11-24 11:16:50 +00:00
regress-1394279.js [maglev] Prevent lazy deopts during maglev's JumpLoop (=OSR) 2022-12-19 09:13:06 +00:00
regress-crbug-1392061.js [maglev] Spill values across throw->catch 2022-11-25 11:56:05 +00:00
regress-crbug-1394036.js [maglev] Update use after merging register values 2022-11-30 15:54:16 +00:00
regress-v8-13289.js [maglev] Use PropertyAccessInfo to create deps for property loads 2022-09-19 13:10:31 +00:00