- 20 May, 2022 1 commit
-
-
Andy Wingo authored
Bug: v8:12868 A slight modification to the existing DFA-based UTF-8 allocator to allow decoding surrogates, for use in decoding WTF-8. We'll need to additionally constrain the decoder to disallow surrogate pairs. Change-Id: Ifddbf08d4eeeff8f270df52a68f01769ea790eec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3652787 Commit-Queue: Andy Wingo <wingo@igalia.com> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#80654}
-
- 19 May, 2022 2 commits
-
-
Clemens Backes authored
Triggering tier-up can happen very often, so the runtime function should be as slim as possible. This CL adds two DisallowGarbageCollection scopes and removes a HandleScope which was unnecessarily created. R=jkummerow@chromium.org Bug: v8:12281 Change-Id: I43e7f2b449630856ac8dfb36d294fbd29191d0eb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3652300 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#80644}
-
jiepan authored
If b is S128Zero, Shuffle(a,b,s) can be optimized to Swizzle(a,s). By setting s[i] to 0x80, we can avoid access b. If a is S128Zero, we can swap a and b first. If one input of I8x16Shuffle is S128Zero, this patch can save ~60% instructions(7 of 12), and more than 30% improvement is observed in local microbenchmarks. Change-Id: I5953fa9064e01203cd4cf423c55dd5ed33cad57e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3544992Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Jie Pan <jie.pan@intel.com> Cr-Commit-Position: refs/heads/main@{#80623}
-
- 17 May, 2022 2 commits
-
-
George Wort authored
Fix bug where AndNot(x, imm) and AndNot(imm, x) both become Bic(x, imm). Bug: chromium:1318092 Change-Id: I0ca2c65a1e5d64da0347c86346e7c4dc04943eff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3613386Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: George Wort <george.wort@arm.com> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/main@{#80600}
-
Clemens Backes authored
- Pass base::Vector instead of pointer plus size - Remove always-true return value - Remove unused SetCompiledModuleBytes in tests - Drive-by: Use std::move for std::function callback R=ahaas@chromium.org Bug: v8:12425 Change-Id: I698abb64e4c8d8229997f09d6a79ef664fe9c933 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644952 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#80596}
-
- 13 May, 2022 1 commit
-
-
Clemens Backes authored
Now that we require C++17 support, we can just use the standard static_assert without message, instead of our STATIC_ASSERT macro. R=leszeks@chromium.org Bug: v8:12425 Change-Id: I1d4e39c310b533bcd3a4af33d027827e6c083afe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647353Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#80524}
-
- 12 May, 2022 2 commits
-
-
Deepti Gandluri authored
Bug: v8:12284 Change-Id: I7f6a4a5182ad61dfdc13faf2ced99fba7d64c9c5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3640926Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/main@{#80502}
-
Deepti Gandluri authored
Bug: v8:12284 Change-Id: I9d8f9da8ed736d5119e7af4354e1ddd8a255713d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3640925 Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#80497}
-
- 11 May, 2022 1 commit
-
-
Deepti Gandluri authored
Prototype the instruction on the interpreter, and Arm64. Details of instruction lowerings on all relevant architectures can be found at: https://github.com/WebAssembly/relaxed-simd/issues/40 Bug: v8:12284 Change-Id: Id4cb3889d94cf0bb7169ea068efe5ca68cfcbad9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3636365 Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#80475}
-
- 05 May, 2022 1 commit
-
-
Peter Kasting authored
This prevents ambiguity errors in C++20 due to ADL when casting types in std::, which gains std::bit_cast<>(). Bug: chromium:1284275 Change-Id: I25046d1952a9304852e481ad8b84049c6769c289 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3625838 Auto-Submit: Peter Kasting <pkasting@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/main@{#80378}
-
- 28 Apr, 2022 1 commit
-
-
Igor Sheludko authored
This is a reland of commit 9d31f866 There were issues with --future flag implications on M1. Original change's description: > [rwx][mac] Support fast W^X permission switching on Apple Silicon (M1) > > ... for V8 code space. The feature is currently disabled. > > In order to use fast W^X permission switching we must allocate > executable pages with readable writable executable permissions (RWX). > However, MacOS on ARM64 ("Apple M1"/Apple Silicon) prohibits further > permission changing of RWX memory pages. This means that the code page > headers must be allocated with RWX permissions too because otherwise > it wouldn't be possible to allocate a large code page over the freed > regular code page and vice versa. > > When enabled, the new machinery works as follows: > > 1) when memory region is reserved for allocating executable pages, the > whole region is committed with RWX permissions and then decommitted, > 2) since reconfiguration of RWX page permissions is not allowed on > MacOS on ARM64 ("Apple M1"/Apple Silicon), there must be no attempts > to change them, > 3) the request to set RWX permissions in the executable page region > just recommits the pages without changing permissions (see (1), they > were already allocated as RWX and then discarded), > 4) in order to make executable pages inaccessible one must use > OS::DiscardSystemPages() instead of OS::DecommitPages() or > setting permissions to kNoAccess because the latter two are not > allowed by the MacOS (see (2)). > 5) since code space page headers are allocated as RWX pages it's also > necessary to switch between W^X modes when updating the data in the > page headers (i.e. when marking, updating stats, wiring pages in > lists, etc.). The new CodePageHeaderModificationScope class is used > in the respective places. On unrelated configurations it's a no-op. > > The fast permission switching can't be used for V8 configuration with > enabled pointer compression and disabled external code space because > a) the pointer compression cage has to be reserved with MAP_JIT flag > which is too expensive, > b) in case of shared pointer compression cage if the code range will > be deleted while the cage is still alive then attempt to configure > permissions of pages that were previously set to RWX will fail. > > This also CL extends the unmapper unit tests with permissions tracking > for discarded pages. > > Bug: v8:12797 > Change-Id: Idb28cbc481306477589eee9962d2e75167d87c61 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579303 > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/main@{#80238} Bug: v8:12797 Change-Id: I0fe86666f31bad37d7074e217555c95900d2afba Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3610433Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#80259}
-
- 27 Apr, 2022 2 commits
-
-
Adam Klein authored
This reverts commit 9d31f866. Reason for revert: crashes on Mac/arm64 bots: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Mac%20-%20arm64%20-%20debug/5923/overview Original change's description: > [rwx][mac] Support fast W^X permission switching on Apple Silicon (M1) > > ... for V8 code space. The feature is currently disabled. > > In order to use fast W^X permission switching we must allocate > executable pages with readable writable executable permissions (RWX). > However, MacOS on ARM64 ("Apple M1"/Apple Silicon) prohibits further > permission changing of RWX memory pages. This means that the code page > headers must be allocated with RWX permissions too because otherwise > it wouldn't be possible to allocate a large code page over the freed > regular code page and vice versa. > > When enabled, the new machinery works as follows: > > 1) when memory region is reserved for allocating executable pages, the > whole region is committed with RWX permissions and then decommitted, > 2) since reconfiguration of RWX page permissions is not allowed on > MacOS on ARM64 ("Apple M1"/Apple Silicon), there must be no attempts > to change them, > 3) the request to set RWX permissions in the executable page region > just recommits the pages without changing permissions (see (1), they > were already allocated as RWX and then discarded), > 4) in order to make executable pages inaccessible one must use > OS::DiscardSystemPages() instead of OS::DecommitPages() or > setting permissions to kNoAccess because the latter two are not > allowed by the MacOS (see (2)). > 5) since code space page headers are allocated as RWX pages it's also > necessary to switch between W^X modes when updating the data in the > page headers (i.e. when marking, updating stats, wiring pages in > lists, etc.). The new CodePageHeaderModificationScope class is used > in the respective places. On unrelated configurations it's a no-op. > > The fast permission switching can't be used for V8 configuration with > enabled pointer compression and disabled external code space because > a) the pointer compression cage has to be reserved with MAP_JIT flag > which is too expensive, > b) in case of shared pointer compression cage if the code range will > be deleted while the cage is still alive then attempt to configure > permissions of pages that were previously set to RWX will fail. > > This also CL extends the unmapper unit tests with permissions tracking > for discarded pages. > > Bug: v8:12797 > Change-Id: Idb28cbc481306477589eee9962d2e75167d87c61 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579303 > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/main@{#80238} Bug: v8:12797 Change-Id: Ic07948e036db36326d464a2a901d052aa060a406 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3611665 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/main@{#80239}
-
Igor Sheludko authored
... for V8 code space. The feature is currently disabled. In order to use fast W^X permission switching we must allocate executable pages with readable writable executable permissions (RWX). However, MacOS on ARM64 ("Apple M1"/Apple Silicon) prohibits further permission changing of RWX memory pages. This means that the code page headers must be allocated with RWX permissions too because otherwise it wouldn't be possible to allocate a large code page over the freed regular code page and vice versa. When enabled, the new machinery works as follows: 1) when memory region is reserved for allocating executable pages, the whole region is committed with RWX permissions and then decommitted, 2) since reconfiguration of RWX page permissions is not allowed on MacOS on ARM64 ("Apple M1"/Apple Silicon), there must be no attempts to change them, 3) the request to set RWX permissions in the executable page region just recommits the pages without changing permissions (see (1), they were already allocated as RWX and then discarded), 4) in order to make executable pages inaccessible one must use OS::DiscardSystemPages() instead of OS::DecommitPages() or setting permissions to kNoAccess because the latter two are not allowed by the MacOS (see (2)). 5) since code space page headers are allocated as RWX pages it's also necessary to switch between W^X modes when updating the data in the page headers (i.e. when marking, updating stats, wiring pages in lists, etc.). The new CodePageHeaderModificationScope class is used in the respective places. On unrelated configurations it's a no-op. The fast permission switching can't be used for V8 configuration with enabled pointer compression and disabled external code space because a) the pointer compression cage has to be reserved with MAP_JIT flag which is too expensive, b) in case of shared pointer compression cage if the code range will be deleted while the cage is still alive then attempt to configure permissions of pages that were previously set to RWX will fail. This also CL extends the unmapper unit tests with permissions tracking for discarded pages. Bug: v8:12797 Change-Id: Idb28cbc481306477589eee9962d2e75167d87c61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579303Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#80238}
-
- 25 Apr, 2022 1 commit
-
-
Clemens Backes authored
This introduces an AssemblerBufferCache class which will (later) cache the backing store of AssemblerBuffers. This is needed for PKU-protected assembler buffers, which are expensive to allocate and deallocate. For now, the AssemblerBufferCache does not do any caching, this will be added in a follow-up CL. R=thibaudm@chromium.org Bug: v8:12809 Change-Id: I4a7ccff49c9930584a9fcda8899cfe38cfc61419 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3593136Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#80145}
-
- 22 Apr, 2022 1 commit
-
-
Deepti Gandluri authored
These were originally proposed as a part of the fixed-width SIMD proposal, and were then migrated to the relaxed-simd proposal which also deems these operations out of scope. Github issue: https://github.com/WebAssembly/relaxed-simd/issues/4 Bug: v8:12284 Change-Id: I65ceb6dfd25c43cf49bd7ec5b5ecd6b32cc3516a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3595970Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/main@{#80125}
-
- 20 Apr, 2022 1 commit
-
-
Thibaud Michaud authored
R=clemensb@chromium.org CC=gdeepti@chromium.org Bug: v8:12284 Change-Id: If78b5a86364b015483131ef321ca9e928e8ddfc1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585338Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#80047}
-
- 19 Apr, 2022 3 commits
-
-
Clemens Backes authored
{LiftoffOptions} already contains many (optional) parameters for Liftoff compilation, but not all of them. This CL moves the function index and the {for_debugging} field also into that struct, to further reduce the number of parameters to {ExecuteLiftoffCompilation} and to improve readability by having a factory-like initialization of the {LiftoffOptions} struct. That struct is now also passed down to the LiftoffCompiler directly instead of unpacking the fields again. R=thibaudm@chromium.org Bug: v8:12809 Change-Id: I8824a1908f214cbf4c21f113934fef3ece1bf88b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513894Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#80032}
-
Ilja Iskovs authored
Immediate version of the Bitclear instruction can be used for logical And with some immediates. It can also be used to implement And(x, Not(imm)) in a single instruction. This patch gives ~0.5% runtime improvement in one benchmark on Neoverse N1. Change-Id: Ia926c6746f0c252f81626c6fca21c4dfb41679d9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3160667Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Martyn Capewell <martyn.capewell@arm.com> Cr-Commit-Position: refs/heads/main@{#80015}
-
Igor Sheludko authored
This is a reland of commit 4d8e1846 One of the Mac arm64 bots failed to link an exported thread_local static variable (crbug/1316800). Original change's description: > [rwx][mac] Introduce RwxMemoryWriteScope > > ... as a single bottleneck that encapsulates the semantics and > implementation of fast per-thread W^X permission switching supported > by Apple Silicon (arm64 M1). > On other architectures this class is a no-op. > > Bug: v8:12797 > Change-Id: Ica842ff9f843e20b7f61fd7e80591e7a1fd29771 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3586986 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79994} Bug: v8:12797 Change-Id: Ifbd15c233bb343f11daa89b1328b5bf65c4806f4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3591332Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#80011}
-
- 18 Apr, 2022 1 commit
-
-
Deepti Gandluri authored
This reverts commit 4d8e1846. Reason for revert: Blocks V8 roll, crbug.com/1316800 Original change's description: > [rwx][mac] Introduce RwxMemoryWriteScope > > ... as a single bottleneck that encapsulates the semantics and > implementation of fast per-thread W^X permission switching supported > by Apple Silicon (arm64 M1). > On other architectures this class is a no-op. > > Bug: v8:12797 > Change-Id: Ica842ff9f843e20b7f61fd7e80591e7a1fd29771 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3586986 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79994} Bug: v8:12797 Change-Id: I81792567839e72b4147d009c0845b0c0de003eb0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3590752 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Owners-Override: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/main@{#80007}
-
- 14 Apr, 2022 2 commits
-
-
Igor Sheludko authored
... as a single bottleneck that encapsulates the semantics and implementation of fast per-thread W^X permission switching supported by Apple Silicon (arm64 M1). On other architectures this class is a no-op. Bug: v8:12797 Change-Id: Ica842ff9f843e20b7f61fd7e80591e7a1fd29771 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3586986Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#79994}
-
Clemens Backes authored
This makes usages less verbose, and is consistent with other existing enums. Also, we can use brace initialization to avoid boilerplate when creating a DynamicTiering value. Drive-by: Rename a 'kIncludeLiftoff' variable to 'include_liftoff' because it is not a static constant. R=jkummerow@chromium.org Bug: v8:12281 Change-Id: Ie45fdb550241a8b9ca4e2a31b7c27500939fa247 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585566Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79993}
-
- 11 Apr, 2022 1 commit
-
-
Lu Yahan authored
FlagScope can't automatically disable wasm-dynamic-tiering. Bug: v8:7748 Change-Id: Ieb59e20b4cb4436277aa88b615bca07657a1212c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578109 Auto-Submit: Yahan Lu <yahan@iscas.ac.cn> Reviewed-by: Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#79920}
-
- 08 Apr, 2022 2 commits
-
-
Thibaud Michaud authored
Rename element_size_bytes() to value_kind_size(), and add the uncompressed version: value_kind_full_size(). R=clemensb@chromium.org Change-Id: I956142937fd1134ecbdaaa617c402ed8fff2cf17 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568477Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#79884}
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: Ic65c09726994fddf73979b5f25b98f7ce4c5d6ef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3574556Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#79870}
-
- 06 Apr, 2022 1 commit
-
-
Clemens Backes authored
This is a reland of commit 54e360d1. The two WasmGC cctests which require SSE4.1 support in Liftoff are now skipped, so we can keep disallowing any bailout (even for missing CPU features) in --liftoff-only. Original change's description: > [wasm] --liftoff-only should disable --wasm-dynamic-tiering > > A Liftoff only configuration should never tier up to TurboFan, hence add > a proper implication to disable dynamic tiering if --liftoff-only is > set. > Also, add a DCHECK to ensure we never accidentally compile with TurboFan > if --liftoff-only is set. > > R=jkummerow@chromium.org > > Bug: v8:12281 > Change-Id: Ia9b81add503cc939f59fde3f4d3bb67252facf2c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3569741 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79779} Bug: v8:12281 Change-Id: I334bd81f75c3ef6d31b6117da5ef59a33fb46ae2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3572043Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79813}
-
- 05 Apr, 2022 1 commit
-
-
Leszek Swirski authored
Remove cctest's ability to run multiple tests (which has long been deprecated and mostly broken). We can then make platform & V8 initialisation be part of running the test's Run method. In particular, this allows us to inject custom logic into the platform initialisation, like setting up a platform wrapper. Add a TEST_WITH_PLATFORM which exercises this by registering a platform factory on the test, and wrapping the default platform using this factory. This allows these tests to guarantee that the lifetime of the platform is longer than the lifetime of the isolate. As a result of this, we can also remove the complexity around draining platform state in the TestPlatform (since it will now have a longer lifetime than the Isolate using it), and as a drive-by clean up the TestPlaform to use a CcTest-global "default platform" instead of trying to scope over the "current" platform. As another drive-by, change the linked-list of CcTests and the linear search through it into an std::map of tests. Change-Id: I610f6312fe042f29f45cc4dfba311e4184bc7759 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3569223Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#79772}
-
- 01 Apr, 2022 1 commit
-
-
Manos Koukoutos authored
Add an array of canonical rtts on the isolate. Each wasm instance copies its rtts from there, based on the type index -> canonical index mapping in the module. Bug: v8:7748 Change-Id: I0958686c51ecab15a3215a0da3bee1ad6d543cb3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3548821Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#79712}
-
- 31 Mar, 2022 1 commit
-
-
Manos Koukoutos authored
This is a reland of commit e76ad5c6 Changes compared to original: - Move invocation of LAZY_INSTANCE_INITIALIZER to a static global variable, as some builds were failing with a function-level static. - Drive-by: Improve documentation a bit. Original change's description: > [wasm-gc] Implement isorecursive canonicalization > > This implements isorecursive canonicalization for static types. > > Not implemented in this CL: > - Runtime type canonicalization. > - Cross-module signature canonicalization for purposes of call_indirect. > > Bug: v8:7748 > Change-Id: I6214f947444eea8d7b15a29b35c94c3d07ddb525 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3541925 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79665} Bug: v8:7748 Change-Id: I493fba1906491762f7d8bae50108e3e4a743391d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3560480Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#79692}
-
- 30 Mar, 2022 2 commits
-
-
Nico Hartmann authored
This reverts commit e76ad5c6. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20-%20shared/19438/overview Original change's description: > [wasm-gc] Implement isorecursive canonicalization > > This implements isorecursive canonicalization for static types. > > Not implemented in this CL: > - Runtime type canonicalization. > - Cross-module signature canonicalization for purposes of call_indirect. > > Bug: v8:7748 > Change-Id: I6214f947444eea8d7b15a29b35c94c3d07ddb525 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3541925 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79665} Bug: v8:7748 Change-Id: I9e26696a7113b1bacafa800c8d6ef24df38c41fd No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3557233 Auto-Submit: Nico Hartmann <nicohartmann@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#79667}
-
Manos Koukoutos authored
This implements isorecursive canonicalization for static types. Not implemented in this CL: - Runtime type canonicalization. - Cross-module signature canonicalization for purposes of call_indirect. Bug: v8:7748 Change-Id: I6214f947444eea8d7b15a29b35c94c3d07ddb525 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3541925Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#79665}
-
- 23 Mar, 2022 2 commits
-
-
Michael Lippautz authored
This fixes a general race with stack-scoped `TestPlatform` which may go out of scope while tasks on workers are still running. Add a barrier for workers, implemented through tasks, to synchronize destruction of `TestPlatform`. While this fixes general races, such short-lived platforms still break if tasks cache the global platform pointer. Bug: v8:12635 Change-Id: Ifc6ecc29f0e2b7297ca52051eae9bd81013b60ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3536651Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79587}
-
David Sanders authored
Change-Id: Ia5066069304ae2eee442cd3e224c0c0c0816fd75 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3543179Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#79574}
-
- 14 Mar, 2022 1 commit
-
-
Victor Gomes authored
The CL implements binary operations bytecodes as generic nodes that call the correspondent runtime builtin. Bug: v8:7700 Change-Id: I82c5e20e4103d4ef367184af1242bae7f7f93fe0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3509392Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#79462}
-
- 08 Mar, 2022 1 commit
-
-
Deepti Gandluri authored
Codegen details detailed in the relevant github issue. https://github.com/WebAssembly/relaxed-simd/issues/21 Bug: v8:12284 Change-Id: I06c8859035abae775269bdf949ff0f1c2e262859 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3508560Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/main@{#79410}
-
- 03 Mar, 2022 2 commits
-
-
Deepti Gandluri authored
Prototype F32x4Relaxed(Min/Max) and F64x2Relaxed(Min/Max) operations for ARM. F32x4 variants map directly to vmin/vmax hardware instructions which are also used for F32x4(Min/Max) operations. The F64x2 variants are mapped in this implementation to Pmin/Pmax instructions as detailed in the github issue. https://github.com/WebAssembly/relaxed-simd/issues/33 Bug: v8:12284 Change-Id: I5ea939385fa0ae97bbdf776fc0b763cabb1b293c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3501347Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/main@{#79355}
-
Deepti Gandluri authored
With the previous change to using the mask as the first input to the node, the lane select ARM codegen is equivalent to V128Select. Also enable cctests to run on ARM. Bug: v8:12284 Change-Id: I5572f4845307ff20cc2a0a58d3ccf162caa436b5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3500655Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/main@{#79352}
-
- 01 Mar, 2022 1 commit
-
-
Manos Koukoutos authored
According to the latest changes in wasm-gc, externref will be renamed to anyref, and will be assigned as the top of the reference type hierarchy. Since in the current wasm type system funcref is not a subtype of anyref, subtyping is now dependent on whether wasm-gc is enabled. Bug: v8:7748 Change-Id: I0c0ae3dd5523e624d4490ca33d1fba4c2ae59393 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3468345Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#79322}
-
- 25 Feb, 2022 1 commit
-
-
Clemens Backes authored
After https://crrev.com/c/3484317, passing {nullptr} to the {CodeSpaceWriteScope} won't work any more. Since the tests do not have a {NativeModule} to pass instead, make them use {pthread_jit_write_protect_np} directly. The jump-table assembler tests have dedicated threads for writing and executing the code, so we just switch once per thread. The icache test switches between writing and executing, so we use a little struct for switching. R=jkummerow@chromium.org, tebbi@chromium.org Bug: v8:12644, v8:11974 Change-Id: I116f3ad75454f749cdc4635802a4617ff91548b2 Cq-Include-Trybots: luci.v8.try:v8_mac_arm64_rel_ng Cq-Include-Trybots: luci.v8.try:v8_mac_arm64_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3487995Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79290}
-
- 18 Feb, 2022 1 commit
-
-
Samuel Groß authored
Previously, V8_OS_MACOSX was, somewhat confusingly, also used for iOS. With this CL, V8_OS_DARWIN will be set on both macOS and iOS, V8_OS_MACOS only on macOS, and V8_OS_IOS only on iOS. This CL also renames V8_TARGET_OS_MACOSX to V8_TARGET_OS_MACOS and renames platform-xnu.cc to platform-darwin.cc. Change-Id: I4bcafc7c337586662114144f6c7ccf47d978da1f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3468577Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#79167}
-