v8/test
Ulan Degenbaev 0400fc2049 [heap] Optimize marking of descriptor arrays.
Now a descriptor array tracks the number of descriptors that were
already marked. The marking visitor of a map only marks the subset
of the descriptors that it needs and that are not already marked.

If a descriptor array is shared between M maps and has N descriptos,
then the number of marking operations is reduced from O(M*N) to O(N).

This patch also adds a marking barrier for descriptors.

The marked descriptor counter in a descriptor array is not cleared
after mark-compact GC. Instead, it embeds two bits from the global
mark-compact epoch counter and is considered 0 if the bits do not match
the current value of the global epoch counter.

Bug: v8:8486
Change-Id: I2a7822a6833f3143e1d351e5e4819c2ef2c07fb0
Reviewed-on: https://chromium-review.googlesource.com/c/1382746
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58372}
2018-12-19 16:49:06 +00:00
..
benchmarks [test] Share resource-fetching logic with all d8 test cases 2018-08-29 17:51:43 +00:00
cctest [heap] Optimize marking of descriptor arrays. 2018-12-19 16:49:06 +00:00
common [objects.h splitting] Move HeapNumber to heap-number.h 2018-12-17 17:58:09 +00:00
debugger [Compiler] Fix flaky tsan error for bytecode flushing. 2018-12-18 14:49:13 +00:00
fuzzer Reduce input size limit of parser fuzzer to 2kB 2018-12-17 13:39:05 +00:00
inspector [reland] Don't allocate feedback vectors and feedback metadata in lite mode 2018-12-19 14:29:30 +00:00
intl [Intl] Rename position to index in Intl.Segmenter 2018-12-18 05:39:35 +00:00
js-perf-test [test] Ensure random generator in JSTests does not use float arithmetic 2018-12-17 10:05:08 +00:00
memory [snapshot] Remove the builtins snapshot 2018-10-31 10:18:28 +00:00
message [parser] Change how catch is parsed 2018-12-19 11:02:01 +00:00
mjsunit [reland] Don't allocate feedback vectors and feedback metadata in lite mode 2018-12-19 14:29:30 +00:00
mkgrokdump [ubsan] Port Map to the new design 2018-11-13 06:59:12 +00:00
mozilla Revert "[runtime] Reduce spread/apply call max arguments" 2018-11-30 09:54:47 +00:00
preparser [test] Share resource-fetching logic with all d8 test cases 2018-08-29 17:51:43 +00:00
test262 [parser] Change how catch is parsed 2018-12-19 11:02:01 +00:00
torque [nojit] Change builtin pointers to use Smis underneath 2018-12-17 15:35:59 +00:00
unittests [conversions] Speed up double to CString conversion 2018-12-19 12:10:50 +00:00
wasm-js [wasm] fix js-api Memory and Table constructor 2018-12-10 23:32:05 +00:00
wasm-spec-tests [wasm] Update spec tests 2018-11-28 11:42:27 +00:00
webkit Fixed typo and added new author 2018-12-18 07:27:19 +00:00
BUILD.gn Reland "[wasm] Add a new wasm-js testsuite to run js-api tests" 2018-10-18 20:18:55 +00:00