- 31 Aug, 2020 1 commit
-
-
Jake Hughes authored
With conservative stack scanning enabled, a snapshot of the call stack upon entry to GC will be used to determine part of the root-set. When the collector walks the stack, it looks at each value and determines whether it could be a potential on-heap object pointer. However, unlike with Handles, these on-stack pointers aren't guaranteed to point to the start of the object: the compiler may decide hide these pointers, and create interior pointers in C++ frames which the GC doesn't know about. The solution to this is to include an object start bitmap in the header of each page. Each bit in the bitmap represents a word in the page payload which is set when an object is allocated. This means that when the collector finds an arbitrary potential pointer into the page, it can walk backwards through the bitmap until it finds the relevant object's base pointer. To prevent the bitmap becoming stale after compaction, it is rebuilt during object sweeping. This is experimental, and currently only works with inline allocation disabled, and single generational collection. Bug: v8:10614 Change-Id: I28ebd9562f58f335f8b3c2d1189cdf39feaa1f52 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2375195 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#69615}
-
- 28 Aug, 2020 3 commits
-
-
Ng Zhi An authored
For SIMD instructions that use aligned moves (like movaps or movapd), we don't have correct memory alignment for SIMD moves yet. Switch to to movupd. Bug: v8:9198 Bug: v8:10831 Change-Id: Ic60fba5d08dda9676f6091ce505ac7be54957d00 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2380240 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#69613}
-
Clemens Backes authored
Even though we provide a --wasm-max-code-space flag (defaulting to {kMaxWasmCodeMB}, we still had checks in place that the actual committed code space is not bigger than that constant. This CL fixes that by always comparing against the value of the flag. This will allow us to specify a code space limit which is larger than the default. This is useful when debugging larger Wasm apps which exceed the limit, but are not meant to be shipped that way. Drive-by: Remove a dead use of the {kMaxWasmCodeMemory} constant. R=ecmziegler@chromium.org Bug: chromium:1117033, chromium:1114093, chromium:1107649, chromium:1111266 Change-Id: I2684446230a8a6f0a27ad963dd6f36e5764b25e0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2376810Reviewed-by:
Emanuel Ziegler <ecmziegler@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69611}
-
Piotr Bialecki authored
This reverts commit 9eb090d2. Reason for revert: breaks trybot android-pie-arm64-dbg, repro steps: build cctest with target_cpu="arm64" in the args. See thread: https://chromium.slack.com/archives/CGJ5WKRUH/p1598563610118900 Original change's description: > [heap] Add concurrent typed slot recording > > Since the typed slot set is not thread-safe, each concurrent marking > barrier collects typed slots locally and publishes them to the main > typed slot set in safepoints. > Bug: v8:10315 > > Change-Id: If1f5c5df786df88aac7bc27088afe91a4173c826 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2370302 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69576} TBR=ulan@chromium.org,dinfuehr@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:10315 Change-Id: Iade0443e5eccef06e3ea77913e18fd1f563995f5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2380613 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69597}
-
- 27 Aug, 2020 1 commit
-
-
Santiago Aboy Solanes authored
Reading the proper pc, fp and sp in a JSEntry frame is in a different offset than in the regular frames. Bug: v8:10779, v8:10833 Fixes: v8:10779 Change-Id: I9aec44276fba0aab95b761ab17a16ec3767f4eb8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2369173 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#69582}
-
- 26 Aug, 2020 3 commits
-
-
Ng Zhi An authored
Now that 86 has branched, we can move bitmask into the SIMD MVP, it will not affect the current OT. (We want any OT extension to include bitmask.) Bitmask was accepted into the proposal in https://github.com/WebAssembly/simd/pull/201. Bug: v8:10308 Change-Id: Ib61190fcea2bfc0ce7bf733086e1a81388216a59 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2378290Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#69577}
-
Ulan Degenbaev authored
Since the typed slot set is not thread-safe, each concurrent marking barrier collects typed slots locally and publishes them to the main typed slot set in safepoints. Bug: v8:10315 Change-Id: If1f5c5df786df88aac7bc27088afe91a4173c826 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2370302Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69576}
-
Santiago Aboy Solanes authored
I forgot to remove them when I removed the old API in https://chromium-review.googlesource.com/c/v8/v8/+/2369174. Bug: v8:8116 Change-Id: I74a9670f56d09b7907187d5abcf15d707c8100a6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2377688 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#69569}
-
- 25 Aug, 2020 7 commits
-
-
Ng Zhi An authored
Some shuffles take have either register or memory operand for second input, but the codegen incorrectly assumes that it is always a register. Bug: v8:10824 Change-Id: Ia2df233dad4ed451e52e57e35cce5c80db0905db Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2373586 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#69562}
-
Clemens Backes authored
This is a reland of c2ea2047 Original change's description: > [wasm] Move kMaxWasmCodeSpaceSize to wasm directory > > This limit is wasm-internal, and does not need to be exposed via > src/common/globals.h. > This CL moves it into the {WasmCodeAllocator}. > > Drive-by: Minor simplification in jump table stress test. > > R=ecmziegler@chromium.org > > Change-Id: Iff8c4657697ae98123d840a022c5b21c4948fcdf > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2375189 > Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69558} Change-Id: I6e0432d14d23978dea599233e620e84d8255caf9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2375388Reviewed-by:
Emanuel Ziegler <ecmziegler@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69560}
-
Clemens Backes authored
This reverts commit c2ea2047. Reason for revert: Link failures: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20cfi/26209 Original change's description: > [wasm] Move kMaxWasmCodeSpaceSize to wasm directory > > This limit is wasm-internal, and does not need to be exposed via > src/common/globals.h. > This CL moves it into the {WasmCodeAllocator}. > > Drive-by: Minor simplification in jump table stress test. > > R=ecmziegler@chromium.org > > Change-Id: Iff8c4657697ae98123d840a022c5b21c4948fcdf > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2375189 > Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69558} TBR=clemensb@chromium.org,ecmziegler@chromium.org Change-Id: Ic3466eb17f2b3dfa4a0864002b0590fa0f571bb5 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2375387Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69559}
-
Clemens Backes authored
This limit is wasm-internal, and does not need to be exposed via src/common/globals.h. This CL moves it into the {WasmCodeAllocator}. Drive-by: Minor simplification in jump table stress test. R=ecmziegler@chromium.org Change-Id: Iff8c4657697ae98123d840a022c5b21c4948fcdf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2375189Reviewed-by:
Emanuel Ziegler <ecmziegler@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69558}
-
Dominik Inführ authored
While LocalHeap allow to dereference handles on background threads, this is only possible when FLAG_local_heaps is enabled. Bug: v8:10315 Change-Id: Ia27582cda7e4b4faf4d2c76959de418415e1ae68 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2372147 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69557}
-
Etienne Pierre-doray authored
- JobHandle::IsCompleted() - JobDelegate::GetTaskId() - worker_count passed as argument to GetMaxConcurrency(). Jobs implementation must call the new GetMaxConcurrency(), but Jobs users aren't migrated yet. Bug: chromium:1114823 Change-Id: I0f4295ccaf9eba866dd771f30e2e49aa3eae9551 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2352484 Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69553}
-
Pierre Langlois authored
The cctests need to simulate full pages, however the calculation of the remainging available space is wrong causing an assertion when we change the V8 page size to 512K: $ cctest test-array-buffer-tracker/ArrayBuffer_PagePromotion # # Fatal error in ../../test/cctest/heap/heap-utils.cc, line 94 # Check failed: padding_size <= overall_free_memory || overall_free_memory == 0. The reason is: - On startup, we register a scavenger observer on the new space. The observer is set to trigger when the new space capacity is at 80% by default. - On linux, the initial capacity of the new space is 512K, so the scavenger observer will be placed at 80% of 512K, which will either be in the second page of the space if the page size is 256K, or in the first page if the page size is 512K. - When placing the observer, if the observer hits the first page, we lower the allocation limit (see `ComputeLimit()`). This makes sure the observer isn't skipped by allocations inlined in generated code. However, when we simulate filling the current page, we compute the space left in the current page by comparing the top with the `page_high()` rather than `limit()`. This was done so the tests would also work when inlined allocations are disabled. If we don't look at the `limit()`, we don't take the observer into account and fill more space than is available, triggering the assertion. This can also be reproduced by reducing the % at which the scavenger is triggered so that it hits the first page instead of the second when the page size is 256K, for example passing --scavenge-task-trigger=10. Bug v8:10808, v8:9906 Change-Id: Iad50bb68995de5ee017dcbe069d1fb229c9f5985 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2372545 Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69550}
-
- 24 Aug, 2020 1 commit
-
-
Santiago Aboy Solanes authored
The new one was created in https://chromium-review.googlesource.com/c/v8/v8/+/1969900, and the old API was deprecated in https://chromium-review.googlesource.com/c/v8/v8/+/2110015, so now we can remove it. Bug: v8:8116 Change-Id: Ia839279609b412c36f1f17368acef23fe07e7c61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2369174Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#69536}
-
- 21 Aug, 2020 2 commits
-
-
Ulan Degenbaev authored
This is a reland of 1dd7f3a9 Original change's description: > [heap] Add concurrent marking write barrier > > A LocalHeap creates and owns an instance of MarkingBarrier. A pointer to > the marking barrier is set to a thread_local variable for a quick access. > > WriteBarrier::MarkingSlow fetches the thread_local variable and invokes > the write barrier if it is set. Otherwise, it invokes the main thread > heap()->marking_barrier(). > > Each marking barrier has its own local marking worklist that is > published during scavenge (for updating pointers) and at finalization > of incremental marking. > > Typed-slot recording does not work yet because it is not thread-safe. > It will be fixed in a subsequent CL. > > Bug: v8:10315 > Change-Id: I221a906436cd91e7405a253ce0eb06cf68046f2c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354809 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69448} Bug: v8:10315 Change-Id: I155bb0aadd53a5333672fb085b33d8da86f3f336 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2364509Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69517}
-
Dominik Inführ authored
Lock the mutex of PagedSpace before invoking FreeLinearAllocationArea(). Bug: v8:10315 Change-Id: If96b9b8b72932590daf3d548be41c20796ed524f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2367857Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69515}
-
- 20 Aug, 2020 3 commits
-
-
Maya Lekova authored
This reverts commit d7b20edc. Reason for revert: Introduces data races - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/32898 Original change's description: > [wasm][ukm] Add tests for Wasm events > > Ensure that events are triggered when a module is decoded, compiled, > instantiated and tiered-up. > > R=clemensb@chromium.org > > Bug: chromium:1092417 > > Change-Id: I9dc87957fc03023c5ab1c4f49e865957c8324e1a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2351676 > Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69508} TBR=clemensb@chromium.org,ecmziegler@chromium.org Change-Id: I9bcfeda1048939a8142f5003b03feab399f9de96 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1092417 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366785Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#69509}
-
Emanuel Ziegler authored
Ensure that events are triggered when a module is decoded, compiled, instantiated and tiered-up. R=clemensb@chromium.org Bug: chromium:1092417 Change-Id: I9dc87957fc03023c5ab1c4f49e865957c8324e1a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2351676 Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69508}
-
Jakob Gruber authored
To properly test tier-up in the V8 test suite, change the test variant previously called --turbo-nci-as-highest-tier to --turbo-nci-as-midtier. As a midtier (between ignition and turbofan), all major parts of the NCI pipeline (codegen, caching inside the same native context, tier-up) are exercised by test suite. Bug: v8:8888 Change-Id: Ic8ee2f3e3d72768c3869f5e0b25800dd0a5f25b7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2361462 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#69501}
-
- 19 Aug, 2020 3 commits
-
-
Ng Zhi An authored
Load extends always load 8 bytes, so the access size does not depend on MachineType of the load. The MachineType is used for classifying the lane shape of the 8-byte load. Also add cctest to load splats and load extends to test OOB. (Note that load splats access size depends on MachineType). Add regression test from clusterfuzz, minimized by ahaas@. Remove the `--no-wasm-trap-handler` flag since we have a no_wasm_traps variant that should test this flag. Bug: chromium:1116019 Change-Id: I27ba051d0536ca0f6fd75dd641ca9b78132dafed Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2363291 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#69489}
-
Salome Thirot authored
When CFI is enabled this adds a check against this list whenever a new return address must be set in a deoptimized frame, as a mitigation for ROP attacks. The list is known at linking time so that its content and the pointer to it can be stored in a read-only memory section. The check is performed in the signing function, which is no longer generic, as well as when setting the current pc of the frame. Since the pc is now only signed when setting the caller's pc, there is no need for ReplaceContext anymore. Bug: v8:10026 Change-Id: I5e85a62b94722051716fdeba476db383c702a318 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2287490Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Rodolph Perfetta <rodolph.perfetta@arm.com> Cr-Commit-Position: refs/heads/master@{#69478}
-
Jakob Gruber authored
... to avoid the repeated pattern of calculating it. Bug: v8:8888 Change-Id: I4af5264aae6cfb8b6232b5aaf9ceb2cb568c29d0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362692 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69469}
-
- 18 Aug, 2020 6 commits
-
-
Milad Farazmand authored
Port 2547e1ce Original Commit Message: Since the compilation progress was never initialized on deserialization, tier down was always skipped on such modules. By initializing to the expected state after deserialization (i.e. all code as TurboFan code), we make sure that later recompilation works as expected. R=clemensb@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Iab66ca0d1bfb36cfee56ccd85720d4c5552eb9c5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2363270Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#69465}
-
Clemens Backes authored
Since the compilation progress was never initialized on deserialization, tier down was always skipped on such modules. By initializing to the expected state after deserialization (i.e. all code as TurboFan code), we make sure that later recompilation works as expected. Drive-by: Fix an unnecessary copy of a {shared_ptr} in deserialization. R=thibaudm@chromium.org Bug: chromium:1110258 Change-Id: Ia12af888e4b11aabfb8cd4e1201e9fa3cd2ceb47 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2323355 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#69458}
-
Maya Lekova authored
This reverts commit 1dd7f3a9. Reason for revert: Breaks TSAN - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/32846? Original change's description: > [heap] Add concurrent marking write barrier > > A LocalHeap creates and owns an instance of MarkingBarrier. A pointer to > the marking barrier is set to a thread_local variable for a quick access. > > WriteBarrier::MarkingSlow fetches the thread_local variable and invokes > the write barrier if it is set. Otherwise, it invokes the main thread > heap()->marking_barrier(). > > Each marking barrier has its own local marking worklist that is > published during scavenge (for updating pointers) and at finalization > of incremental marking. > > Typed-slot recording does not work yet because it is not thread-safe. > It will be fixed in a subsequent CL. > > Bug: v8:10315 > Change-Id: I221a906436cd91e7405a253ce0eb06cf68046f2c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354809 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69448} TBR=ulan@chromium.org,dinfuehr@chromium.org Change-Id: I9719d565aaa313cd23f5e759dcef1246f475eb46 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10315 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362689Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#69451}
-
Ulan Degenbaev authored
A LocalHeap creates and owns an instance of MarkingBarrier. A pointer to the marking barrier is set to a thread_local variable for a quick access. WriteBarrier::MarkingSlow fetches the thread_local variable and invokes the write barrier if it is set. Otherwise, it invokes the main thread heap()->marking_barrier(). Each marking barrier has its own local marking worklist that is published during scavenge (for updating pointers) and at finalization of incremental marking. Typed-slot recording does not work yet because it is not thread-safe. It will be fixed in a subsequent CL. Bug: v8:10315 Change-Id: I221a906436cd91e7405a253ce0eb06cf68046f2c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354809 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69448}
-
Martin Bidlingmaier authored
This adds the new JsRegExp::Type EXPERIMENTAL, which should eventually be implemented with the algorithm based on automata. Currently the new engine deals with plain search strings only, i.e. regexps that do not contain operators or escape sequences. R=jgruber@chromium.org Bug: v8:10765 Change-Id: I6a10d9cdf4605d219dbe7cc1989df3bfa7349ff8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339094Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#69442}
-
Dominik Inführ authored
Starting the task right on NotifyDeserializationComplete() turned out to be too early for some tests. So let an AllocationObserver start the stress allocation after deserialization is finished. Bug: v8:10315 Change-Id: I00a4294add5ec87074f9e775c602b3031cc16d58 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2358735 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69441}
-
- 17 Aug, 2020 1 commit
-
-
Emanuel Ziegler authored
Add an event for recording metrics related to decoding Wasm modules. R=clemensb@chromium.org Bug: chromium:1092417 Change-Id: Id60560d8eb8c14edb5b863857b18c1c82f48e7e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2351672 Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69425}
-
- 14 Aug, 2020 3 commits
-
-
Manos Koukoutos authored
Drive-by: Add flag implications for wasm experimental features: gc -> typed_funcref, typed_funcref -> reftypes. Bug: v8:9495 Change-Id: Ia6054886935d68e79b8f463289aa9e1e9d6484f2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2352777Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#69403}
-
Leszek Swirski authored
This patch introduces a new LocalIsolate and LocalFactory, which use LocalHeap and replace OffThreadIsolate and OffThreadFactory. This allows us to remove those classes, as well as the related OffThreadSpace, OffThreadLargeObjectSpace, OffThreadHeap, and OffThreadTransferHandle. OffThreadLogger becomes LocalLogger. LocalHeap behaves more like Heap than OffThreadHeap did, so this allows us to additionally remove the concept of "Finish" and "Publish" that the OffThreadIsolate had, and allows us to internalize strings directly with the newly-concurrent string table (where the implementation can now move to FactoryBase). This patch also removes the off-thread support from the deserializer entirely, as well as removing the LocalIsolateWrapper which allowed run-time distinction between Isolate and OffThreadIsolate. LocalHeap doesn't support the reservation model used by the deserializer, and we will likely move the deserializer to use LocalIsolate unconditionally once we figure out the details of how to do this. Bug: chromium:1011762 Change-Id: I1a1a0a72952b19a8a4c167c11a863c153a1252fc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2315990 Commit-Queue: Andreas Haas <ahaas@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69397}
-
Dominik Inführ authored
Run SimulateFullSpace in safepoint. Needed for FreeLinearAllocationArea which would race with concurrent allocation. Bug: v8:10315 Change-Id: If0c3c4e20edea1b05cc1a3e1a3e37fc29254a196 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354812Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69395}
-
- 13 Aug, 2020 4 commits
-
-
Shu-yu Guo authored
This reached consensus in the March 2020 TC39. https://github.com/tc39/ecma262/pull/1908 This aligns JS with wasm, which allows atomics operations on non-shared linear memory. Bug: v8:10687, v8:9921 Change-Id: I7b60473b271cee6bccb342e97a4fd3781aedddb4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2330802 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#69392}
-
Dominik Inführ authored
Two tests already test concurrent allocation. Another one measures memory, so non-deterministic allocation would lead to higher memory usage than anticipated. Bug: v8:10315 Change-Id: If994233c87ea04076b850ffdf024f7783653e9db Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2352781Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69383}
-
Dominik Inführ authored
Bug: v8:10315 Change-Id: Id7d5600e07cd0dfbce409925acf6047e019f501c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2352769Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69370}
-
Santiago Aboy Solanes authored
Since it will be patched in later in the cases where it will be used, there is no need to have it as a parameter. Bug: v8:7790 Change-Id: I93b27f3baf8c3841a60f5ac5ed09993d1caf19bc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2351667Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#69366}
-
- 12 Aug, 2020 2 commits
-
-
Santiago Aboy Solanes authored
The (now unique)PersistentHandles container follows this path: 1) PersistentHandles created via PersistentHandlesScope inside of CompilationHandleScope 2) Owned by OptimizedCompilationInfo 3) Owned by JSHeapBroker 4) Owned by the broker's LocalHeap 5) Back to the broker for a brief moment (after tearing down the LocalHeap as part of exiting LocalHeapScope) 6) Back to OptimizedCompilationInfo when exiting the LocalHeapScope. There is a special case in GenerateCodeForTesting where the JSHeapBroker will not be retired in that same method. In this case, we need to re-attach the PersistentHandles container to the JSHeapBroker. The identity map of the persistent & canonical handles also gets passed around like the persistent handles. The only difference is that is created in the CanonicalHandleScope (i.e step 1) is different). Bug: v8:7790 Change-Id: I2da77a7e08f3fd360a46b606c5fbda08c0af27df Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332811 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69360}
-
Dominik Inführ authored
ArrayBufferTracker was superseded by ArrayBufferList and ArrayBufferSweeper. Now that ArrayBufferSweeper is used in production, we can remove the unused ArrayBufferTracker mechanism. Bug: v8:10064 Change-Id: I479169c76b6c5c634672024f77e689bb64a36504 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339105Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69351}
-