v8/test
Jakob Gruber 8703c38d9a [compiler] Emit a function-entry stack check on OSR-entry
This CL extends the smarter function-entry stack check logic (see
v8:9534) to OSR'd code. These smarter stack checks prevent
overflowing the stack during deoptimization.

The challenge for both function-entry (FE) and OSR-entry (OE) stack
checks is that there is no dedicated physical StackCheck to
deoptimize into. For more context: the physical StackCheck bytecode
was removed in crrev.com/c/1914218.

FE stack checks solve this by using a marker bailout id to signify
a deopt bytecode offset before the first bytecode.

In this CL, OE stack checks take a similar approach by using the
OSR'd loop's JumpLoop bytecode, which is conceptually immediately
before the OSR'd loop header.

When a stack overflow at an OE stack check occurs: %StackGuard
may cause a lazy deopt on return to the optimized OSR code,
causing re-execution of the JumpLoop handler in the
InterpreterEnterBytecodeAdvance builtin, ultimately continuing
execution the interpreter at the first bytecode of the OSR'd loop
header.

Bug: chromium:1034322, v8:9534
Change-Id: I1ae88a08702cde9a5eb84a451a9f1acc41204d5c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2625872
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72153}
2021-01-19 13:26:18 +00:00
..
benchmarks [tools] Mark raytrace as slow everywhere 2020-12-03 17:05:14 +00:00
cctest [v8windbg] Generate debug macros files 2021-01-19 12:07:38 +00:00
common Reland "Faster JS-to-Wasm calls" 2021-01-19 11:54:38 +00:00
debugger [wasm][eh] Fix delegate opcode 2021-01-15 17:28:53 +00:00
debugging [wasm] [debugging] Fix --wasm-gdb-remote 2020-12-08 19:37:25 +00:00
fuzzer [wasm][eh] Remove exnref type 2021-01-15 16:37:26 +00:00
fuzzilli Fix unhandled promise rejections in REPRL mode 2020-09-30 13:34:23 +00:00
inspector Reland "Faster JS-to-Wasm calls" 2021-01-19 11:54:38 +00:00
intl Fix resolvedOption calendar for "iso8601" 2021-01-12 06:22:08 +00:00
js-perf-test [super] Rewrite perf tests 2020-11-16 08:36:24 +00:00
memory Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
message [wasm][eh] Revert to catch with tag immediate 2020-12-03 18:55:31 +00:00
mjsunit [compiler] Emit a function-entry stack check on OSR-entry 2021-01-19 13:26:18 +00:00
mkgrokdump Replace libc functions with base wrappers 2020-11-17 08:50:41 +00:00
mozilla [Respect] Prefer inclusive terms 2020-06-22 18:11:23 +00:00
test262 [test262] Remove myself from OWNERS 2021-01-15 17:13:56 +00:00
torque [cleanup] Remove arguments adaptor code 2021-01-18 14:51:36 +00:00
unittests [Turboprop] Avoid using SAME_INPUT_OUTPUT registers for USED_AT_END inputs. 2021-01-19 12:36:18 +00:00
wasm-api-tests [test][cleanup] Rename WASM_*_GLOBAL to WASM_GLOBAL_* 2020-12-17 21:26:54 +00:00
wasm-js [wasm] Update spec tests 2021-01-15 12:13:40 +00:00
wasm-spec-tests [wasm] Update spec tests 2021-01-15 12:13:40 +00:00
webkit Disallow \8 and \9 in strict mode and template literals 2020-08-03 18:05:14 +00:00
BUILD.gn [turbofan] Make OSR and stack slots compatible 2020-10-05 17:41:02 +00:00
OWNERS Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00