v8/test/unittests
Omer Katz 930598427c Reland "cppgc: Stack scanning using ObjectStartBitmap"
This reverts commit 580917d252.

Reason for revert: fix in patchset 2

Original change's description:
> Revert "cppgc: Stack scanning using ObjectStartBitmap"
> 
> This reverts commit d3a72e3c2a.
> 
> Reason for revert: MSAN failures (https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/32360)
> 
> Original change's description:
> > cppgc: Stack scanning using ObjectStartBitmap
> > 
> > This CL implements stack scanning for cppgc.
> > Given a value on the stack, the MarkingVisitor uses
> > PageBackend::Lookup to checks whether that address is on
> > the heap. If it is, BasePage::TryObjectHeaderFromInnerAddress
> > (introduced in this CL) is used to get the relevant object
> > header. Note that random addresses on the heap might point to
> > free memory, object-start-bitmap, etc.
> > 
> > If a valid object header is found:
> > * If the object is not in construction, the GCInfoIndex is used
> > the get the relevant Trace method and the object is traced.
> > * Otherwise, the object is conservatively scanned - i.e. the
> > payload of the object is iterated word by word and each word is
> > treated as a possible pointer.
> > 
> > Only addresses pointing to the payload on non-free objects are
> > traced.
> > 
> > BasePage::TryObjectHeaderFromInnerAddress assumes on LAB on the
> > relevant space, thus all LABs are reset before scanning the stack.
> > 
> > Bug: chromium:1056170
> > Change-Id: I172850f6f1bbb6f0efca8e44ad8fdfe222977b9f
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190426
> > Commit-Queue: Omer Katz <omerkatz@chromium.org>
> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> > Reviewed-by: Anton Bikineev <bikineev@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#67795}
> 
> TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org
> 
> Change-Id: I3caef6f9f55911fd1a86e895c3495d1b98b1eac2
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:1056170
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201136
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#67796}

TBR=ulan@chromium.org,mlippautz@chromium.org,leszeks@chromium.org,bikineev@chromium.org,omerkatz@chromium.org

# Not skipping CQ checks because this is a reland.

Bug: chromium:1056170
Change-Id: If7ea4fe5cb794c07544d5545f5d6548e3375d3ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201137
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67803}
2020-05-14 15:07:23 +00:00
..
api Reland "[builtins] Clean up the use of class_name / ES5 [[Class]]" 2020-04-24 11:46:43 +00:00
asmjs Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
assembler [wasm][mips] Save FP & PC when calling C functions 2020-03-19 09:38:06 +00:00
base Fix CountPopulation non-builtin implementation 2020-05-14 14:24:13 +00:00
codegen [csa] move TNode to separate header 2019-09-12 14:48:03 +00:00
compiler [turbofan] Add SIMD multiply-add/sub on arm64 2020-05-13 09:40:00 +00:00
compiler-dispatcher [Jobs]: Add job impl to default platform. 2020-04-24 15:31:21 +00:00
date Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
diagnostics Move unittest files 2019-05-27 08:52:23 +00:00
execution [sandbox] Access microtask queue in NativeContext via bottlenecks 2020-05-05 09:11:14 +00:00
heap Reland "cppgc: Stack scanning using ObjectStartBitmap" 2020-05-14 15:07:23 +00:00
interpreter [interpreter] Delete StackCheck bytecode 2020-03-20 15:16:01 +00:00
libplatform [platform] Remove DefaultPlatform::SetThreadPoolSize 2020-05-05 17:57:49 +00:00
logging Reland "Unconditionally enable snapshot builds and remove 'v8_use_snapshot'" 2019-10-16 06:01:05 +00:00
numbers [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
objects [wasm] Fix return value of concurrent memory.grow 2020-04-14 21:37:32 +00:00
parser Move remaining files in src/ 2019-05-24 18:24:36 +00:00
profiler [cpu-profiler] Add support for refcounting to StringsStorage 2020-03-30 19:08:06 +00:00
regress Reland "[runtime] Improve handling of enumeration index on global dictionary" 2020-03-02 15:41:15 +00:00
strings Fix some issues caught by _LIBCPP_DEBUG=0 2019-11-21 12:17:03 +00:00
tasks [compile] Add an UnoptimizedCompileState class 2020-04-23 07:08:28 +00:00
torque [torque] allow conditionals with enum constants 2020-05-13 06:49:51 +00:00
utils [base] Fix {StaticCharVector} and add {StaticOneByteVector} 2020-04-17 18:45:32 +00:00
wasm [wasm][gc][refactor] Decode gc types with immediates consistently. 2020-05-06 14:31:29 +00:00
zone [zone] Remove segment pooling from accounting allocator 2019-03-01 09:25:48 +00:00
BUILD.gn Reland "cppgc: Port ObjectStartBitmap" 2020-05-13 11:34:20 +00:00
DEPS Move unit tests to test/unittests. 2014-10-01 08:34:25 +00:00
run-all-unittests.cc [test] Configure GTest for thread-safe death tests. 2020-01-20 20:03:54 +00:00
test-helpers.cc [compile] Add an UnoptimizedCompileState class 2020-04-23 07:08:28 +00:00
test-helpers.h [compile] Add an UnoptimizedCompileState class 2020-04-23 07:08:28 +00:00
test-utils.cc [test] Create one Isolate per unit test (not test suite) 2020-04-14 11:36:25 +00:00
test-utils.h [test] Create one Isolate per unit test (not test suite) 2020-04-14 11:36:25 +00:00
testcfg.py Reland "Preparing v8 to use with python3 /test" 2019-03-20 09:56:06 +00:00
unittests.status [snapshot] Clear reconstructable data prior to d8 stress_snapshot run 2020-05-06 07:11:22 +00:00