v8/test/mjsunit/maglev
Jakob Linke 178f2eeb13 Reland "[maglev] Deopt on overflow in >>>"
This is a reland of commit 24e60017d4

The reland changes %ClearFunctionFeedback to clear *all* feedback
slot kinds including binary/compare/for-in slots. In the tests we
thus no longer have to resort to tricks to restore the function to
it's initial state, instead simply call %ClearFunctionFeedback.

Original change's description:
> [maglev] Deopt on overflow in >>>
>
> Re-enable the int32 fast path for ShiftRightLogical, but account for
> Maglev's missing signed/unsigned representation tracking by a)
> removing rhs==0 as the identity value (a shift by 0 is still a
> signed-unsigned conversion) and b) deoptimizing if the result cannot
> be converted to a non-negative smi.
>
> Note this is not a deopt loop, since a non-smi result will change the
> feedback to kSignedSmallInputs (from kSignedSmall).
>
> To fix this properly, we should track signed/unsigned representations
> and convert the result to a heap number if it doesn't fit within smi
> range.
>
> Bug: v8:7700
> Change-Id: Ifd538d227a6f1290eb7f008d9bfad586ff91ea0f
> Fixed: v8:13251
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3876366
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Jakob Linke <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#83025}

Bug: v8:7700
Change-Id: I2f607a0fb863b80e8589c9c1e86ee31fbac48c25
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3879491
Auto-Submit: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83057}
2022-09-08 09:16:46 +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] Support exception handlers 2022-09-02 12:09:32 +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-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
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] Implement Maglev-to-Turbofan OSR 2022-08-30 11:51:28 +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-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
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