v8/test/unittests
Ross McIlroy 51a1514016 [Interpreter] Adapt Call bytecode handlers to drop their stack-frame.
This change adapts the Call bytecode handlers such that they don't require
a stack frame. It does this by modifying the call bytecode handler to
tail-call the Call or InterpreterPushArgsAndCall builtins. As a result, the
callee function will return to the InterpreterEntryTrampoline when it returns
(since this is the return address on the interpreter frame), which is
adapted to dispatch to the next bytecode handler. The return bytecode
handler is modified to tail-call a new InterpreterExitTramoline instead
of returning to the InterpreterEntryTrampoline.

Overall this significanlty reduces the amount of stack space required for
interpreter frames, increasing the maximum depth of recursive calls from
around 6000 to around 12,500 on x64.

BUG=chromium:753705

Change-Id: I23328e4cef878df3aca4db763b47d72a2cce664c
Reviewed-on: https://chromium-review.googlesource.com/634364
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#47617}
2017-08-25 21:32:09 +00:00
..
api Set the current context to the function's context when entering to LAP. 2017-08-24 12:04:19 +00:00
asmjs [asm.js] Remove some dead AsmType subclasses. 2017-08-25 09:50:29 +00:00
base [base] Add tests for base::AsAtomicWord::SetBits. 2017-08-16 15:13:02 +00:00
compiler [turbofan] Never generate loop exit phis for the accumulator 2017-08-17 05:09:31 +00:00
compiler-dispatcher [Parsing] Remove parse-task support. 2017-08-18 21:09:30 +00:00
heap [heap] Refactor page initialization. 2017-08-18 16:28:34 +00:00
interpreter [Interpreter] Adapt Call bytecode handlers to drop their stack-frame. 2017-08-25 21:32:09 +00:00
libplatform Make idle tasks optional in the default platform. 2017-03-07 13:37:41 +00:00
parser [parser] Move newly added cctest/test-parsing/LazyFunctionLength to unittests. 2017-04-18 14:27:32 +00:00
wasm [wasm] Avoid constructing OOB WireBytesRef 2017-08-24 07:06:17 +00:00
zone [heap] Simplify and linearly scale ResourceConstraints::ConfigureDefaults. 2017-05-23 17:00:57 +00:00
BUILD.gn Move helper struct from logging.h to template-utils.h 2017-08-07 11:23:43 +00:00
cancelable-tasks-unittest.cc Make CancelableTask ids unique 2017-08-02 16:10:42 +00:00
char-predicates-unittest.cc Use ICU for ID_START, ID_CONTINUE and WhiteSpace check 2017-06-14 20:32:49 +00:00
counters-unittest.cc Localize counter class member functions. 2017-06-08 16:18:32 +00:00
DEPS Move unit tests to test/unittests. 2014-10-01 08:34:25 +00:00
eh-frame-iterator-unittest.cc [turbofan] Fix more -Wsign-compare warnings. 2016-11-11 12:01:08 +00:00
eh-frame-writer-unittest.cc [turbofan] Fix more -Wsign-compare warnings. 2016-11-11 12:01:08 +00:00
locked-queue-unittest.cc Add lock-based unbounded queue 2015-11-18 10:54:13 +00:00
object-unittest.cc [runtime] Devirtualize CompilationCacheKey::HashForObject 2017-06-12 17:00:52 +00:00
register-configuration-unittest.cc [Turbofan] Add concept of FP register aliasing on ARM 32. 2016-10-26 16:04:33 +00:00
run-all-unittests.cc Make idle tasks optional in the default platform. 2017-03-07 13:37:41 +00:00
source-position-table-unittest.cc This CL enables precise source positions for all V8 compilers. It merges compiler::SourcePosition and internal::SourcePosition to a single class used throughout the codebase. The new internal::SourcePosition instances store an id identifying an inlined function in addition to a script offset. 2016-11-14 17:22:32 +00:00
test-helpers.cc Reland "[builtins] Remove Builtins::Name() accessors" 2017-08-01 10:39:10 +00:00
test-helpers.h [Parsing] Remove parse-task support. 2017-08-18 21:09:30 +00:00
test-utils.cc Disable other background modules while testing the CompilerDispatcher 2017-03-14 14:01:03 +00:00
test-utils.h Disable other background modules while testing the CompilerDispatcher 2017-03-14 14:01:03 +00:00
unicode-unittest.cc Fix out-of-range access in unibrow::Utf8::CalculateValue. 2016-11-22 09:27:59 +00:00
unittests.gyp Move helper struct from logging.h to template-utils.h 2017-08-07 11:23:43 +00:00
unittests.isolate Reland [swarming] Isolate v8 testing. 2015-10-05 09:48:42 +00:00
unittests.status Remove x87 port 2017-07-18 18:20:40 +00:00
value-serializer-unittest.cc Fix compilation failure due to overload of virtual function 2017-05-24 21:19:48 +00:00