- 20 Jul, 2021 1 commit
-
-
Seth Brenith authored
Most Torque-defined extern classes already use @generateCppClass. As Nico pointed out in [1], it would be nice to convert the remaining classes and remove this option. This change converts most of those remaining classes. I know that the future of Torque-defined classes is a subject of some debate right now, but I think that it's worth doing a few mechanical changes to reduce the existing variety of options. Changes that don't exactly follow the usual pattern: 1. BigIntBase, MutableBigInt: we can define these without a body, and then Torque treats them as "really external" rather than "kind of external, but with some Torque-generated parts". 2. RegExpMatchInfo: moved its inline functions into a separate file, which the generated -tq.cc file requires. [1] https://docs.google.com/document/d/1q_gZLnXd4bGnCx3IUfbln46K3bSs9UHBGasy9McQtHI/edit# Bug: v8:8952 Change-Id: I84c7958a295caa0bab847683c05022e18c921cad Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3027742Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#75817}
-
- 11 Jun, 2021 1 commit
-
-
Igor Sheludko authored
This CL adds WASM_ARRAY_ELEMENTS to distinguish WasmArray maps. Bug: v8:11804 Change-Id: I243ce24c2f2246efbc223af14361c28506e9a2d2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2922884 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75109}
-
- 26 May, 2021 1 commit
-
-
Jakob Gruber authored
.. when concurrent-inlining, use direct reads instead. Two fields were changed to have a non-atomic getter and acq-rel accessors: - Map::prototype_info - PrototypeInfo::object_create_map Bug: v8:7790 Change-Id: I05e888240d73ab6e961b1048a25713ec45fb0305 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2876852Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#74777}
-
- 19 May, 2021 1 commit
-
-
Jakob Kummerow authored
We used to recompile WasmCapiCallWrappers whenever they were needed, but never garbage-collected them, which caused a memory leak when many short-lived instances of the same module were created. This patch makes the wrappers cacheable and caches them, which avoids both repeated compilation effort and the unbounded memory growth. Drive-by cleanup: unify WasmCapiFunctionData with the other Wasm*FunctionData classes by making it inherit from WasmFunctionData. Bug: v8:11774 Change-Id: Ia0c0d76be2938dc7bebfdc845f4a1cfeafef4a70 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2905605 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74682}
-
- 10 May, 2021 1 commit
-
-
Marja Hölttä authored
Detailed list of changes: https://docs.google.com/document/d/15i4-SZDzFDW7FfclIYuZEhFn-q-KpobCBy23x9zZZLc/edit?usp=sharing Bug: v8:11111 Change-Id: I931003bd4552cf91d57de95af04a427a9e6d6ac9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2814259Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Shu-yu Guo <syg@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#74459}
-
- 03 May, 2021 1 commit
-
-
Igor Sheludko authored
When fast deleting properties generalize all outgoing transitions to mutable instead of generalizing when property is reconfigured. Bug: chromium:1201938 Change-Id: I080f2f43de1691a742be2a2bec5cd20d02d78dbc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859960 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#74334}
-
- 29 Apr, 2021 1 commit
-
-
Jakob Kummerow authored
By (mostly) unifying the different kinds of WasmFunctionData, and precomputing and caching what we can, we can reduce the amount of work that has to be done for each call. We still have to store the current instance for JS function calls; that may be eliminatable in the future. WasmCapiFunctions are not included in the refactoring yet. Bug: v8:7748,v8:9495 Change-Id: Ie6839153153d5854670cd01bc77a86111c1f68d2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856543 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#74287}
-
- 28 Apr, 2021 1 commit
-
-
Dominik Inführ authored
A NativeContext is initialized in two steps: First the map is allocated, only afterwards the NativeContext. It could happen that there is a GC happening when allocating the NativeContext. In such a case the native_context for the Map is still set to null. Fix this by also allowing null in Map::MapVerify. Bug: v8:11695 Change-Id: Id8dcd6aef83aff4cbfff45a1e993e555cff8e7bb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2853587Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#74237}
-
- 22 Apr, 2021 1 commit
-
-
Jakob Gruber authored
Until this CL, the JSHeapBroker::GetPropertyAccessInfo (GPAI) process was as follows: 1. GPAI is called on the main thread (MT) during the serialization phase to create and cache PAIs. 2. GPAI is called again from the background thread (BT); only cached PAIs from step 1 are usable. As part of concurrent inlining, the goal is to move GPAI fully to the background thread. This CL takes a major step in that direction by making GPAI itself callable from the BT without resorting solely to PAIs that were previously cached on the MT. There are two main reasons why GPAI previously had to run on the MT: a) Concurrent access to Maps and other heap objects. b) Serialization and creation of ObjectRefs for objects discovered during GPAI. This CL addresses only reason a) and leaves b) for future work. This is done by keeping the two-pass approach, s.t. the initial call of GPAI on the MT discovers and serializes objects. We then clear all cached PAIs. The second call of GPAI on the BT thus runs full logic in a concurrent setting. Once all relevant objects (= maps and prototypes) no longer require MT-serialization, reason b) is also addressed and the first pass can be removed. The new logic is implemented behind the runtime flag --turbo-concurrent-get-property-access-info (default true), intended to be removed in the future. Bug: v8:7790 Change-Id: Idbdbfe091d7316529246a686bb6d71c2a0f06f8b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2817793 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#74120}
-
- 13 Apr, 2021 1 commit
-
-
Santiago Aboy Solanes authored
From the concurrent compiler's perspective, we can perform those read/writes non-atomically and have wider TSAN coverage. The concurrent marker, however, needs them to be atomic. Bug: v8:7790 Change-Id: I96897f4f6237c90da018ec89be838aae894c24bc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2817538 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#73935}
-
- 12 Apr, 2021 1 commit
-
-
Santiago Aboy Solanes authored
We have to have special rules for bit_fields since we multiple accesors touch the same field. I used: * If the accessor is set at map initalization time only and: * only the main thread accesses it: non-atomic write/read * bg accesses it too: non-atomic write, relaxed read (read has to be relaxed due to the whole bit_field being modified concurrently via other bit_field3 accessors) * If the accessor is set after map initialization: * but it is not necessary for synchronization: relaxed write/read * If the accessor is needed for synchronization: release/acquire As a note, Map::NumberOfOwnDescriptors are the bits accessed by the concurrent marker. For concurrent marker reasons it can be relaxed, but we would like it to be release/acquire for the compiler since that's where we synchronize Maps with adding descriptors to the descriptor array. Bug: v8:7790, chromium:1150811 Change-Id: I0ba7d2f8cb81d65a487970b4ea0bfa2a4cb3a975 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773286Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#73911}
-
- 08 Apr, 2021 1 commit
-
-
Jakob Gruber authored
This is part of moving towards MapUpdater as the bottleneck for map updates. Drive-by: Move helpers. Drive-by: Use a plain std::queue instead of a ZoneQueue in UpdateFieldType. Bug: v8:7790 Change-Id: Iff80a6e9bf3390a010305f7998d6f6dad2bce09f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2807602 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#73851}
-
- 06 Apr, 2021 2 commits
-
-
Jakob Gruber authored
.. and inline them into callsites. These were thin wrappers around MapUpdater methods. This is part of moving towards MapUpdater as the bottleneck for map updates. Bug: v8:7790 Change-Id: Ie79ee063b83892d3c233581832361295aeb8e90f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2807600 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#73804}
-
Shu-yu Guo authored
This is a reland of e28dadc2 The original failure was due to a stale Win32 bot. The reland failure was due to idempotent task deduplication returning the exact same failure. See crbug/1196064 Original change's description: > [ptr-cage] Rename IsolateRoot to PtrComprCageBase > > Currently, IsolateRoot is both the address of the Isolate root and the > base address of the pointer compression reservation. This CL teases the > two uses apart by renaming IsolateRoot to PtrComprCageBase. > > - In addition to V8_COMPRESS_POINTERS, add a > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE (vs SHARED_CAGE). > > - Rename GetIsolate* helpers to GetPtrComprCageBase. When > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE is true, the helpers remain as > aliases to GetPtrComprCageBase. > > - Rename kPtrComprIsolateRootAlignment to kPtrComprCageBaseAlignment. > > Bug: v8:11460 > Change-Id: I1d715f678ce9a0b5731895612ca14f56579b1c48 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783672 > Commit-Queue: Shu-yu Guo <syg@chromium.org> > Auto-Submit: Shu-yu Guo <syg@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73790} Bug: v8:11460 No-Try: true Tbr: ishell@chromium.org Tbr: rmcilroy@chromium.org Change-Id: Id69311cf3267ebe1297fff159de0be48b15b65a3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2806546Reviewed-by: Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#73795}
-
- 05 Apr, 2021 4 commits
-
-
Shu-yu Guo authored
This reverts commit 15c78b45. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win32/32277/overview Original change's description: > Reland "[ptr-cage] Rename IsolateRoot to PtrComprCageBase" > > This is a reland of e28dadc2 > > Relanding to see if Win32 rel failures from > https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win32/32275/overview > were infra flakes. Could not repro on try bots. > > Original change's description: > > [ptr-cage] Rename IsolateRoot to PtrComprCageBase > > > > Currently, IsolateRoot is both the address of the Isolate root and the > > base address of the pointer compression reservation. This CL teases the > > two uses apart by renaming IsolateRoot to PtrComprCageBase. > > > > - In addition to V8_COMPRESS_POINTERS, add a > > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE (vs SHARED_CAGE). > > > > - Rename GetIsolate* helpers to GetPtrComprCageBase. When > > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE is true, the helpers remain as > > aliases to GetPtrComprCageBase. > > > > - Rename kPtrComprIsolateRootAlignment to kPtrComprCageBaseAlignment. > > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783672 > > Reviewed-by: Igor Sheludko <ishell@chromium.org> > > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > > No-Try: true > Bug: v8:11460 > Tbr: ishell@chromium.org > Tbr: rmcilroy@chromium.org > Change-Id: I0a8c3a48999d6737c8c64d2c2703607f14f3fdd0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2806169 > Reviewed-by: Shu-yu Guo <syg@chromium.org> > Commit-Queue: Shu-yu Guo <syg@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73792} Bug: v8:11460 Change-Id: Ifee92d622c43a91c15f45ef94ff739237bd2024b No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2806545 Auto-Submit: Shu-yu Guo <syg@chromium.org> Reviewed-by: Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#73793}
-
Shu-yu Guo authored
This is a reland of e28dadc2 Relanding to see if Win32 rel failures from https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win32/32275/overview were infra flakes. Could not repro on try bots. Original change's description: > [ptr-cage] Rename IsolateRoot to PtrComprCageBase > > Currently, IsolateRoot is both the address of the Isolate root and the > base address of the pointer compression reservation. This CL teases the > two uses apart by renaming IsolateRoot to PtrComprCageBase. > > - In addition to V8_COMPRESS_POINTERS, add a > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE (vs SHARED_CAGE). > > - Rename GetIsolate* helpers to GetPtrComprCageBase. When > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE is true, the helpers remain as > aliases to GetPtrComprCageBase. > > - Rename kPtrComprIsolateRootAlignment to kPtrComprCageBaseAlignment. > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783672 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> No-Try: true Bug: v8:11460 Tbr: ishell@chromium.org Tbr: rmcilroy@chromium.org Change-Id: I0a8c3a48999d6737c8c64d2c2703607f14f3fdd0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2806169Reviewed-by: Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#73792}
-
Francis McCabe authored
This reverts commit e28dadc2. Reason for revert: failed test262 tests;; see https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win32/32275/steps?succeeded=true&debug=false Original change's description: > [ptr-cage] Rename IsolateRoot to PtrComprCageBase > > Currently, IsolateRoot is both the address of the Isolate root and the > base address of the pointer compression reservation. This CL teases the > two uses apart by renaming IsolateRoot to PtrComprCageBase. > > - In addition to V8_COMPRESS_POINTERS, add a > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE (vs SHARED_CAGE). > > - Rename GetIsolate* helpers to GetPtrComprCageBase. When > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE is true, the helpers remain as > aliases to GetPtrComprCageBase. > > - Rename kPtrComprIsolateRootAlignment to kPtrComprCageBaseAlignment. > > Bug: v8:11460 > Change-Id: I1d715f678ce9a0b5731895612ca14f56579b1c48 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783672 > Commit-Queue: Shu-yu Guo <syg@chromium.org> > Auto-Submit: Shu-yu Guo <syg@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73790} Bug: v8:11460 Change-Id: I19d0e28194fcdb28e89f129a7694ca3fe29fa17a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2806168 Auto-Submit: Francis McCabe <fgm@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73791}
-
Shu-yu Guo authored
Currently, IsolateRoot is both the address of the Isolate root and the base address of the pointer compression reservation. This CL teases the two uses apart by renaming IsolateRoot to PtrComprCageBase. - In addition to V8_COMPRESS_POINTERS, add a V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE (vs SHARED_CAGE). - Rename GetIsolate* helpers to GetPtrComprCageBase. When V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE is true, the helpers remain as aliases to GetPtrComprCageBase. - Rename kPtrComprIsolateRootAlignment to kPtrComprCageBaseAlignment. Bug: v8:11460 Change-Id: I1d715f678ce9a0b5731895612ca14f56579b1c48 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783672 Commit-Queue: Shu-yu Guo <syg@chromium.org> Auto-Submit: Shu-yu Guo <syg@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#73790}
-
- 17 Mar, 2021 1 commit
-
-
Santiago Aboy Solanes authored
We can ensure that the constructor is set before the map is set on the JSObject. Setting the constructor remains non-atomic. Bug: v8:7790 Change-Id: Ie65519f61e29c9bed89bf09f582aa8bd39de1b03 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2761199Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#73460}
-
- 16 Mar, 2021 1 commit
-
-
Santiago Aboy Solanes authored
Most of Map's bit_field (as in not 2 or 3) accessors are not set after construction e.g. is_callable. They are also not used as a synchronization point. From the compiler's point of view, they can be set as non-atomic. There are two accessors (`prototype_slot` and `non_instance_prototype`) that have to be atomic for concurrent marker reasons (relaxed is fine for them). Bug: v8:7790, chromium:1150811 Change-Id: Ic3c81a59e7895ee9c35a128bb10656040b19dd42 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752154Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#73432}
-
- 11 Mar, 2021 3 commits
-
-
Clemens Backes authored
This is a reland of 80f5dfda. A condition in pipeline.cc was inverted, which lead to a CSA verifier error. Original change's description: > [no-wasm] Exclude src/wasm from compilation > > This is the biggest chunk, including > - all of src/wasm, > - torque file for wasm objects, > - torque file for wasm builtins, > - wasm builtins, > - wasm runtime functions, > - int64 lowering, > - simd scala lowering, > - WasmGraphBuilder (TF graph construction for wasm), > - wasm frame types, > - wasm interrupts, > - the JSWasmCall opcode, > - wasm backing store allocation. > > Those components are all recursively entangled, so I found no way to > split this change up further. > > Some includes that were recursively included by wasm headers needed to > be added explicitly now. > > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc > because it only tests wasm backing stores. This file is excluded from > no-wasm builds then. > > R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org > > Bug: v8:11238 > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73344} TBR=jgruber@chromium.org Bug: v8:11238 Change-Id: I20bd2847a59c68738b5a336cd42582b7b1499585 Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel Cq-Include-Trybots: luci.v8.try:v8_linux_verify_csa_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_verify_csa_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752867Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#73348}
-
Clemens Backes authored
This reverts commit 80f5dfda. Reason for revert: Fails CSA verification: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20verify%20csa/21766/overview Original change's description: > [no-wasm] Exclude src/wasm from compilation > > This is the biggest chunk, including > - all of src/wasm, > - torque file for wasm objects, > - torque file for wasm builtins, > - wasm builtins, > - wasm runtime functions, > - int64 lowering, > - simd scala lowering, > - WasmGraphBuilder (TF graph construction for wasm), > - wasm frame types, > - wasm interrupts, > - the JSWasmCall opcode, > - wasm backing store allocation. > > Those components are all recursively entangled, so I found no way to > split this change up further. > > Some includes that were recursively included by wasm headers needed to > be added explicitly now. > > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc > because it only tests wasm backing stores. This file is excluded from > no-wasm builds then. > > R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org > > Bug: v8:11238 > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73344} Bug: v8:11238 Change-Id: I93672002c1faa36bb0bb5b4a9cc2032ee2ccd814 Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752866 Auto-Submit: Clemens Backes <clemensb@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73346}
-
Clemens Backes authored
This is the biggest chunk, including - all of src/wasm, - torque file for wasm objects, - torque file for wasm builtins, - wasm builtins, - wasm runtime functions, - int64 lowering, - simd scala lowering, - WasmGraphBuilder (TF graph construction for wasm), - wasm frame types, - wasm interrupts, - the JSWasmCall opcode, - wasm backing store allocation. Those components are all recursively entangled, so I found no way to split this change up further. Some includes that were recursively included by wasm headers needed to be added explicitly now. backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc because it only tests wasm backing stores. This file is excluded from no-wasm builds then. R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org Bug: v8:11238 Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#73344}
-
- 08 Mar, 2021 1 commit
-
-
Santiago Aboy Solanes authored
If a method happens on the main thread and only on the main thread (i.e. it will never be run on the background), it is safer to use non-atomic accessors as TSAN will give warnings if we use them improperly. As a drive-by, pass the isolate as a parameter where it was readily available as it saves us from getting the isolate from the object later on. Bug: v8:7790 Change-Id: Id9bdd69254edc60b0331a32fccf1479a95b7d286 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2732669Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#73251}
-
- 05 Mar, 2021 1 commit
-
-
Ulan Degenbaev authored
Now that double unboxing is removed, the concurrent marker can directly visit all JSObjects without snapshotting them first. Bug: v8:11422 Change-Id: Ib5cb4d0b39fd2654f4e417a09c9497d134fea1ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2732009 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#73211}
-
- 19 Feb, 2021 1 commit
-
-
Mike Stanton authored
Code objects are exposed through JSFunction and SharedFunctionInfo. If they are builtins, we don't have to worry about background threads seeing partially initialized code objects. If they are optimized code objects, we may. Background threads read the code fields with AcquireLoad semantics. The fields are set on the main thread with ReleaseStore semantics when appropriate. Special care is taken when setting an optimized code object in a closure in the interpreter entry stub. Since the MacroAssembler doesn't support ReleaseStore semantics, this CL ensures that the optimized code object is stored with those semantics in the feedback vector, where the interpreter entry stub finds it. Bug: v8:7790 Change-Id: I41ecedfe0e9d1ad5091cbe9a97f66c66ca9e07dd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2676633 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#72869}
-
- 11 Feb, 2021 1 commit
-
-
Santiago Aboy Solanes authored
Reasons: * We disabled it more than a year ago for all configs * Not easy to re-enable * Not compatible with pointer compression as-is * Not compatible with concurrent TP/TF as-is * No concrete plans to re-enable it Also remove Map's layout_descriptor since it was only used for double field unboxing. Bug: v8:11422 Change-Id: I9260906eac199213b3210712e9903f1ecf1d7979 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2676637Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#72671}
-
- 09 Feb, 2021 1 commit
-
-
Frank Emrich authored
This CL is part of a series that adds the C++ implementation of SwissNameDictionary, a deterministic property backing store based on Swiss Tables. This CL contains most of the boilerplate code for introducing a new instance type. Bug: v8:11388 Change-Id: Id263b8138a8ce4b465fb28d968223d2e1aaf05a4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2672030Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Frank Emrich <emrich@google.com> Cr-Commit-Position: refs/heads/master@{#72582}
-
- 05 Feb, 2021 1 commit
-
-
Manos Koukoutos authored
The constructor_or_backpointer accessor of Map was not consistent with the torque-defined field constructor_or_back_pointer_or_native_context, leading to confusion. This CL brings them in sync, choosing the latter spelling. Change-Id: I3375c5f060bfd5e1e7cab195e3cca3d508c88154 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2674011 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72540}
-
- 21 Jan, 2021 1 commit
-
-
Seth Brenith authored
With this change, the GC will compute the size for ScopeInfo instances based on a combination of flags, context_local_count, and possibly module_variable_count, rather than using the FixedArray-style length field. After this change and a few more cleanups, we should be able to remove that length field and save a few bytes. Bug: v8:8952 Change-Id: Ica8e51ee106685b44fcc55556b4bb124afc91cfa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2598461 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#72231}
-
- 20 Jan, 2021 1 commit
-
-
Seth Brenith authored
This change adds Torque field definitions for ScopeInfo and begins to use the Torque-generated accessors in some places. It does not change the in-memory layout of ScopeInfo. Torque compiler changes: - Fix an issue where the parser created constexpr types for classes based on the class name rather than the `generates` clause. This meant that generated accessors referred to the imaginary type HashTable rather than the real C++ type FixedArray. - Don't pass Isolate* through the generated runtime functions that implement Torque macros. Maybe we'll need it eventually, but we don't right now and it complicates a lot of things. - Don't emit `kSomeFieldOffset` if some_field has an unknown offset. Instead, emit a member function `SomeFieldOffset()` which fetches the slice for some_field and returns its offset. - Emit an `AllocatedSize()` member function for classes which have complex length expressions. It fetches the slice for the last field and performs the multiply&add to compute the total object size. - Emit field accessors for fields with complex length expressions, using the new offset functions. - Fix a few minor bugs where Torque can write uncompilable code. With this change, most code still treats ScopeInfo like a FixedArray, so I would like to follow up with some additional changes: 1. Generate a GC visitor for ScopeInfo and use it 2. Generate accessors for struct-typed fields (indexed or otherwise), and use them 3. Get rid of the FixedArray-style get and set accessors; use TaggedField::load and similar instead 4. Inherit from HeapObject rather than FixedArrayBase to remove the unnecessary `length` field After that, there will only be one ugly part left: initialization. I think it's possible to generate a factory function that takes a bunch of iterator parameters and returns a fully-formed, verifiably correct ScopeInfo instance, but doing so is more complicated than the four mostly-mechanical changes listed above. Bug: v8:7793 Change-Id: I55fcfe9189e4d1613c68d49e378da5dc02597b36 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2357758Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#72187}
-
- 24 Nov, 2020 1 commit
-
-
Tobias Tebbi authored
Drive-by Torque changes: - kSize can be non-aligned, use SizeFor() instead for map allocation. - Factory functions use Torque-generated setters directly to work even if they are shadowed. - Allow class generation in the presence of custom weak fields, this was supported already. Bug: v8:7793 Change-Id: I7e2df45d550ff70973e5167459050fd84db03114 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2547285 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#71371}
-
- 17 Nov, 2020 2 commits
-
-
Santiago Aboy Solanes authored
Make the three map's bitfields use release/acquire semantics. This ensures, for example, that when we set the number of own descriptors on the map we will do so with a release store. Also, start reading and writing said bitfields concurrently when concurrent inlining is enabled. Note the BIMODAL_ACCESSOR_WITH_FLAG_B macro which enables this. Bug: v8:7790 Change-Id: I16561d8e065c50ce272b085d9606b98e37922633 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2536640Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#71237}
-
Tobias Tebbi authored
Drive-by change: Fix wrong reference to FixedRangeBodyDescriptor in implementation-visitor.cc TBR: ulan@chromium.org Change-Id: I8a1f468f35c38f5be1f4e8d1cfcc9f0fd2a16381 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2540546 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Auto-Submit: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#71223}
-
- 13 Nov, 2020 1 commit
-
-
Georg Neis authored
Change-Id: I6f0f003b09fea49718eadc59cf35bdb346c585d1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2536636 Commit-Queue: Georg Neis <neis@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Auto-Submit: Georg Neis <neis@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#71178}
-
- 11 Nov, 2020 1 commit
-
-
Tobias Tebbi authored
This CL lets Torque generate the Context C++ class and BodyDescriptor for Context. This requires two Torque changes: - Allow @generateBodyDescriptor on @abstract classes, since all Context classes share the same BodyDescriptor. - Add a new annotation @relaxedWrite, which makes C++ setters use WRITE_RELAXED_FIELD instead of WRITE_FIELD. Attention: As a side-effect, this CL disables using WRITE_RELAXED_FIELD by default for all non-array fields. If this causes problems, we should manually add @relaxedWrite to the corresponding fields. Bug: v8:7793 Change-Id: I735b310bcb36a3612d86c22efa9c0bfc108d4ca6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2529453 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#71123}
-
- 10 Nov, 2020 1 commit
-
-
Tobias Tebbi authored
Bug: v8:7793 TBR=hpayer@chromium.org Change-Id: I88644c9476b74f57d3cf7a3056a9b70f1467b96d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2489689 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#71079}
-
- 09 Nov, 2020 1 commit
-
-
Tobias Tebbi authored
This is a reland of 26f10ecd Change compared to original CL: The deserializer changes StrongDescriptorArray to DescriptorArray. Since this CL uses separate BodyDescriptors for the two kinds of descriptor arrays, this caused a DCHECK failure when the deserializer changes the map while the object is visited from the concurrent marking thread. Fix this by disabling the corresponding checks. Original change's description: > [torque] allow exported classes with custom C++ class > > Introduce a new annotation @customCppClass that can be used for > non-extern @export classes, that is, generate everything, remove > boilerplate from all the internal lists and switches, but allow > a custom C++ class, which in turn also allows overwriting the generated > print and verify functions. > > Port DescriptorArray and StrongDescriptorArray as an example. > > Bug: v8:7793 > Change-Id: I744e52fb4102ac49c0097f1c95bb17d301975bf0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2489687 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Seth Brenith <seth.brenith@microsoft.com> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#70989} Bug: v8:7793 Change-Id: I7505fb111896991d16d7d113704c8c3676669f34 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2526383Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#71048}
-
- 05 Nov, 2020 2 commits
-
-
Michael Achenbach authored
This reverts commit 26f10ecd. Reason for revert: GC stress failures: https://crbug.com/v8/11114 Original change's description: > [torque] allow exported classes with custom C++ class > > Introduce a new annotation @customCppClass that can be used for > non-extern @export classes, that is, generate everything, remove > boilerplate from all the internal lists and switches, but allow > a custom C++ class, which in turn also allows overwriting the generated > print and verify functions. > > Port DescriptorArray and StrongDescriptorArray as an example. > > Bug: v8:7793 > Change-Id: I744e52fb4102ac49c0097f1c95bb17d301975bf0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2489687 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Seth Brenith <seth.brenith@microsoft.com> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#70989} TBR=ulan@chromium.org,tebbi@chromium.org,seth.brenith@microsoft.com,nicohartmann@chromium.org Change-Id: I4631db66a76f41cf62b400e8ee64df27e641a320 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7793,v8:11114 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2521911Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#70994}
-
Tobias Tebbi authored
Introduce a new annotation @customCppClass that can be used for non-extern @export classes, that is, generate everything, remove boilerplate from all the internal lists and switches, but allow a custom C++ class, which in turn also allows overwriting the generated print and verify functions. Port DescriptorArray and StrongDescriptorArray as an example. Bug: v8:7793 Change-Id: I744e52fb4102ac49c0097f1c95bb17d301975bf0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2489687Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Seth Brenith <seth.brenith@microsoft.com> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#70989}
-