v8/test
Jaroslav Sevcik 1da91b8389 Reland "[deoptimizer] Staged materialization of objects."
This relands commit e71b802279.

This can now back in as the fix for chromium:787301 had enough time to
be tested in Canary.

Original change's description:
> [deoptimizer] Staged materialization of objects.
>
> The existing object materialization in the deoptimizer has the following problems:
>
> - Objects do not necessarily verify during materialization (because during the
>   depth first walk we might have inconsistent objects).
>
> - Stack can overflow (because we just materialize using recursive calls).
>
> - We generalize object fields.
>
>
> This CL re-implements the materialization algorithm to solve this problem. The
> new implementation creates the objects in two steps:
>
> 1. We allocate space for all the objects. In general, we allocate ByteArrays
>    of the right size. For leaf objects that cannot participate in cycles,
>    we build and initialize the materialized objects completely.
>
>    For JS objects, we insert markers into the byte array at the positions
>    where unboxed doubles are expected.
>
> 2. We initialize all the objects with the proper field values and change the
>    map from the ByteArray map to the correct map. This requires some sync
>    with the concurrent marker (Heap::NotifyObjectLayoutChange).
>
>    When initializing the JS object fields, we make sure that we respect
>    the unboxed double marker.
>
> Bug: chromium:770106, v8:3836
> Change-Id: I1ec466a9d19db9538df4ba915516d4c3ca825632
> Reviewed-on: https://chromium-review.googlesource.com/777559
> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#49821}

Bug: chromium:770106, v8:3836
Change-Id: Ied6c4e0fbae52713e55ae6dc13794a7521dbb8a5
Reviewed-on: https://chromium-review.googlesource.com/817745
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49982}
2017-12-11 08:45:58 +00:00
..
benchmarks [test] Extract expected outcomes. Simpler FAIL_* handling. 2017-11-24 09:23:03 +00:00
cctest [ia32][wasm] Enable more SIMD tests on IA32 2017-12-11 02:28:06 +00:00
common Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
debugger [heap] Minor MC: Pause concurrent marking 2017-12-08 13:33:33 +00:00
fuzzer Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
inspector [inspector] avoid running gc before reporting scripts 2017-12-06 20:02:22 +00:00
intl Remove env field from testcase. 2017-11-16 15:26:06 +00:00
js-perf-test [test] Add find-index.js to the list of resources for the test 2017-12-07 13:49:46 +00:00
memory [snapshot] add tracking for builtin snapshot size. 2017-08-31 07:29:31 +00:00
message [parser] classify binding pattern errors when parsing await expression 2017-12-09 16:29:23 +00:00
mjsunit Reland "[deoptimizer] Staged materialization of objects." 2017-12-11 08:45:58 +00:00
mkgrokdump Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
mozilla [test] Common statusfile flag format for mozilla and test262. 2017-11-20 14:20:24 +00:00
preparser Remove shell info from testcase. 2017-11-16 15:42:26 +00:00
promises-aplus Remove env field from testcase. 2017-11-16 15:26:06 +00:00
test262 [bigint] Enable test262's BigInt tests. 2017-12-06 16:02:55 +00:00
unittests [wasm] s/wasm-heap/wasm-code-manager 2017-12-05 16:30:06 +00:00
wasm-spec-tests [wasm] Update spec tests 2017-12-08 15:25:10 +00:00
webkit [class] Throw early errors for fields with constructor and prototype name 2017-11-28 15:00:18 +00:00
bot_default.gyp [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
bot_default.isolate [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
BUILD.gn [wasm] Remove the wasm-asmjs fuzzer 2017-06-21 10:59:35 +00:00
default.gyp [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
default.isolate [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
optimize_for_size.gyp
optimize_for_size.isolate [debugger] basic test infrastructure for new debugger test api. 2016-10-21 06:38:05 +00:00
perf.gyp
perf.isolate Reland "Reland "[test] Creating command before execution phase."" 2017-12-04 13:40:29 +00:00