v8/test
Benedikt Meurer 34de39bfab [turbofan] Add support to inline new Array(n) calls.
Make calls like

  new Array(n)
  new A(n)

(where A is a subclass of Array) inlinable into TurboFan. We do this by
speculatively checking that n is an unsigned integer that is not greater
than JSArray::kInitialMaxFastElementArray, and then lowering the backing
store allocation to a builtin call. The speculative optimization is
either protected by the AllocationSite for the Array constructor
invocation (if we have one), or by a newly introduced global protector
cell that is used for Array constructor invocations that don't have an
AllocationSite, i.e. the ones from Array#map, Array#filter, or from
subclasses of Array.

Next step will be to implement the backing store allocations inline in
TurboFan, but that requires Loop support in the GraphAssembler, so it's
done as a separate CL. This should further boost the performance.

This boosts the ARES6 ML benchmark by up to 8% on the steady state,
and also improves monomorphic Array#map calls by around 20-25% on the
initial setup.

Bug: v8:6399
Tbr: ulan@chromium.org
Change-Id: I7c8bdecf7c814ce52db6ee3051c3206a4f7d4bb6
Reviewed-on: https://chromium-review.googlesource.com/704639
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48348}
2017-10-06 15:59:25 +00:00
..
benchmarks
cctest [arm64-simulator] Dispose stray Isolate in test 2017-10-06 15:09:03 +00:00
common [wasm] Add disassembly for Atomic ops in wasm-text 2017-10-05 23:00:51 +00:00
debugger [test] Skip some debugger tests under stress_incremental_marking 2017-10-06 12:49:23 +00:00
fuzzer [fuzzer] Documentation: fix link for build configurations reference. 2017-10-05 16:45:12 +00:00
inspector [cleanup] Fix (D)CHECK macros in src/{debug,inspector} 2017-09-25 12:20:59 +00:00
intl
js-perf-test Implement microbenchmark for has-in idiom 2017-09-13 08:48:44 +00:00
memory [snapshot] add tracking for builtin snapshot size. 2017-08-31 07:29:31 +00:00
message [wasm] Add flag for memory tracing 2017-10-02 08:26:26 +00:00
mjsunit [turbofan] Add support to inline new Array(n) calls. 2017-10-06 15:59:25 +00:00
mkgrokdump
mozilla Reland "[d8] implement setTimeout." 2017-09-05 07:30:46 +00:00
preparser
promises-aplus
test262 Revert "[language] Implement optional catch binding proposal" 2017-10-05 08:31:15 +00:00
unittests [wasm] Fail upon second code section in streaming compilation 2017-10-05 15:11:02 +00:00
wasm-spec-tests [wasm] Remove fixed todo 2017-09-26 09:20:41 +00:00
webkit Reland "[build] Switch windows default compilation to MSVS 2017" 2017-09-29 09:36:49 +00:00
bot_default.gyp
bot_default.isolate
BUILD.gn
default.gyp
default.isolate
optimize_for_size.gyp
optimize_for_size.isolate
perf.gyp
perf.isolate