v8/test/mjsunit/maglev
Toon Verwaest 46d2105337 [maglev] Spill values across throw->catch
If a value is used after a try-block finishes, we need to make sure that
the catch-block can restore its value. Otherwise we'd accidentally drop
the value on register merge thinking we're in a liveness hole on the
merge after the catch (since the catch cleared all the registers). This
then breaks JumpLoops that need to restore the value in a specific
register.

Bug: v8:7700, chromium:1392061
Change-Id: I7255ccf9b36bf36583ad612882137b251c48caed
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055111
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84483}
2022-11-25 11:56:05 +00:00
..
regress [maglev] Spill values across throw->catch 2022-11-25 11:56:05 +00:00
00.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
01.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
02.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
03.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
04.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
05.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
06.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
07.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
08.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
09.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
10.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
11.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
12.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
13.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
14.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
15.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
16.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
17.js [maglev] Implement StoreField 2022-03-08 15:09:53 +00:00
18.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
19.js [maglev] CompactInterpreterFrameState fixes 2022-03-29 13:59:48 +00:00
add-number.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
add-smi.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
argument-over-under-application.js [maglev] Fix over application return stack cleanup 2022-03-29 10:39:28 +00:00
call-js-runtime.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
call-runtime-for-pair.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
constant-in-proto-proxy-after-holder.js [maglev] Depend on stable protos up to validity cell 2022-09-05 10:12:04 +00:00
destructuring-assignment-with-exclude-properties.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
eager-deopt-in-inline.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
exceptions.js [maglev] Emit Int32->Smi checks eagerly 2022-11-11 16:11:16 +00:00
get-template-object.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
inner-function.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
int32_constants_in_phi.js [maglev] Tag Int32Constant in Phi boundaries 2022-10-31 14:30:41 +00:00
int32-branch.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
lazy-deopt-with-onstack-activation.js [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
lazy-deopt-without-onstack-activation.js [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
lda-global-inside-typeof.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
lda-global.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
lda-module-variable-import.mjs [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
lda-module-variable.mjs [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
literals.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
load-named.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
lots-of-registers.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
mutable-context-access.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
omit-default-ctors-array-iterator.js [maglev] Omit calling default ctors 2022-09-28 11:02:44 +00:00
omit-default-ctors.js [maglev] Omit calling default ctors 2022-09-28 11:02:44 +00:00
osr-from-ml-to-tf.js [maglev] Fix osr-from-ml-to-tf flake again 2022-09-01 08:03:22 +00:00
osr-to-tf.js [maglev] Don't trigger TF OSR before TF 2022-10-11 13:21:48 +00:00
set-pending-message.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
shift-right-logical-smi.js Reland "[maglev] Deopt on overflow in >>>" 2022-09-08 09:16:46 +00:00
shift-right-logical.js Reland "[maglev] Deopt on overflow in >>>" 2022-09-08 09:16:46 +00:00
shift-right-smi.js Reland "[maglev] Deopt on overflow in >>>" 2022-09-08 09:16:46 +00:00
shift-right.js Reland "[maglev] Deopt on overflow in >>>" 2022-09-08 09:16:46 +00:00
simple-inlining.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
spill-double.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
sta-module-variable.mjs [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
string-at.js [maglev] Add fast path for strings in element access 2022-10-17 14:45:35 +00:00
string-compare.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
super-ic.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
throw-in-cstr.js [maglev] Fix exception phi for receiver in constructors 2022-10-13 13:46:18 +00:00
tier-to-ml-to-tf.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
undefined-or-null-branch.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
unstable-map-transition.js [maglev] Stable maps can become stale after a side effect 2022-10-26 09:39:59 +00:00