- 19 Jun, 2019 1 commit
-
-
Tobias Tebbi authored
This disallows using CSA macros from Torque that have a Node* return type instead of TNode<>. By enforcing CSA types at the boundary between CSA and Torque, we can ensure that the Torque types and the CSA types match. As a drive-by, this CL adds a bit more of CSA typing where it made sense. Bug: v8:7793, v8:6949 Change-Id: I12ea0337c628105ea3c420be747ae50d3a172547 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1660481 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#62293}
-
- 21 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 TBR=bmeurer@chromium.org,neis@chromium.org NOPRESUBMIT=true Change-Id: Ia1e49d1aac09c4ff9e05d58fab9d08dd71198878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621931Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61682}
-
- 20 May, 2019 1 commit
-
-
Yang Guo authored
Code that is being moved primarily deal with layout of a JSObject, accessing properties and elements, and map transitions. NOTREECHECKS=true NOTRY=true Bug: v8:9247 Change-Id: Ibce5d5926ac4021c8d40c4dd109948775ce1da58 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613994 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61638}
-
- 03 Dec, 2018 1 commit
-
-
Igor Sheludko authored
broken by: [cleanup] Fix kPointerSize usages in src/objects/bigint.* Bug: v8:8477, v8:8238 Change-Id: If1961ae42e1969d4ee807ea052a9c4cf4f072d0f Reviewed-on: https://chromium-review.googlesource.com/c/1357046 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#57997}
-
- 05 Nov, 2018 1 commit
-
-
Tobias Tebbi authored
No longer use inheritance to associate Torque-generated assemblers with corresponding CSA subclasses. Instead, all references to CSA and CSA-derived assemblers are now explicitly qualified, by generating a short-lived assembler instance in-place. As a consequence, Torque files have to mention the assembler external macros live in. The CodeStubAssembler is the default for this and can be omitted. As a drive-by cleanup, also distinguish between names that are emitted in C++ and names that are intended to be read in error messages. This is relevant for generic instantiations, where the generated names are rather unreadably mangled. As a follow-up, it will be easy to allow for qualified access to different modules, thus implementing full namespace semantics for modules. Bug: v8:7793 Change-Id: Ie6f1b6b549b510fb49be2442393d898d5f130950 Reviewed-on: https://chromium-review.googlesource.com/c/1309636 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#57235}
-
- 18 Sep, 2018 1 commit
-
-
Benedikt Meurer authored
This is the next step to support large array buffers. On 64-bit archs the full safe integer range is available (up to 2^53-1 bytes in theory). On 32-bit platforms the full Unsigned31 range is allowed, so that we can continue to use CheckBounds for typed arrays and data views in the optimizing compiler (it's generally unlikely that the kernel will give you more than 1GiB of contiguous memory anyways). Drive-by-fix: This introduces proper chokepoints for the byte_offset and byte_length accesses in the CSA code, and also does some renaming for consistency. Bug: v8:4153, v8:7881, v8:8171 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I92a767638532ca9f86084398ce72556c5180cc6e Reviewed-on: https://chromium-review.googlesource.com/1228377Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56008}
-
- 03 Aug, 2018 1 commit
-
-
Théotime Grohens authored
This CL fixes a bug found by Clusterfuzz, in which the functions LoadDataViewByteOffset and -ByteLength incorrectly had a return type of TNode<Smi> instead of TNode<Number>. This caused a CAST() call to fail when the requested byte offset or byte length did not fit inside a Smi, i.e. when the underlying ArrayBuffer of the DataView had a length longer than 2^30 on 32-bit platforms. The CL also includes a new test in mjsunit to test against this. Bug: chromium:869313 Change-Id: Ibb7d29bda5782a12c4b506c070bb03fef8c3ec70 Reviewed-on: https://chromium-review.googlesource.com/1158582 Commit-Queue: Théotime Grohens <theotime@google.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#54900}
-
- 05 Jul, 2018 1 commit
-
-
Théotime Grohens authored
This CL is a manual revert of 3e78711c. Adding the fast path did not result in any performance improvement, and actually decreased DataView performance in the performance test. Change-Id: I149670088b07c31e44d93ed65505254ec0caf8ba Reviewed-on: https://chromium-review.googlesource.com/1126925Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Théotime Grohens <theotime@google.com> Cr-Commit-Position: refs/heads/master@{#54251}
-
- 25 Jun, 2018 1 commit
-
-
Théotime Grohens authored
This CL adds a fast path for DataView getters and setters when the load or store to be performed is aligned and when the requested endianness matches the platform endianness. In that case, we can just emit the right load/store instruction instead of having to read and write data byte by byte. Change-Id: I10bd95a7fe8d23f695899eb8173bc654fb38fbb0 Reviewed-on: https://chromium-review.googlesource.com/1106168 Commit-Queue: Théotime Grohens <theotime@google.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#54005}
-
- 18 Jun, 2018 1 commit
-
-
Théotime Grohens authored
This CL completely reimplements the DataView setters in Torque, and removes the former C++ runtime implementation. Change-Id: I66cdd35712e46f3931d6530a4512fa3c8eb3b3bf Reviewed-on: https://chromium-review.googlesource.com/1104162 Commit-Queue: Théotime Grohens <theotime@google.com> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#53800}
-
- 15 Jun, 2018 1 commit
-
-
Théotime Grohens authored
This CL moves the remaining runtime DataView getters to Torque, namely DataViewGetBigInt64/BigUint64, and removes the associated runtime code that is now unneeded. All of the DataView getters are now implemented in Torque, which brings a nice performance improvement over the former C++ builtin code. Change-Id: I35cf2eabce3c79cc0d3200e7f24dbe0c3e5c2804 Reviewed-on: https://chromium-review.googlesource.com/1092736 Commit-Queue: Théotime Grohens <theotime@google.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53765}
-
- 12 Jun, 2018 1 commit
-
-
Daniel Clifford authored
In the process: - Add strict ordering of Types so that name mangling is consistent and build time. Previously, the UnionType stored the union's types in a std::set<const Type*>, which did not have a consistent ordering of the types in the set. - Add a int31 type to enable consistency and correctness of handling of 'constexpr int31' values on the C++ side. - By removing the "implicit" keyword for operators, there is now one less difference between operators and calls, another incremental step in unifying operators and calls. - Enable external (i.e. C++-defined) generic specializations - Add CSA support for checking double ElementsKinds, including tests. - Clean up some constexpr/non-constexpr handling of ElementsKinds. Bug: v8:7793 Change-Id: I27699aba70b98ebf5466e5b62b045d7b1dad62c8 Reviewed-on: https://chromium-review.googlesource.com/1091155 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#53664}
-
- 06 Jun, 2018 2 commits
-
-
Daniel Clifford authored
This allows redifinitions of generics with the same name but differing parameter type lists, e.g. macro coerce<Dest: type>(from: HeapObject): Dest; coerce<int32>(from: HeapObject): int32 {...} macro coerce<Dest: type>(from: Smi): Dest; coerce<int32>(from: Smi): int32 {...} In order to allow multiple overloads of generic macros with the same name, a more nuanced lookup of calls has been implemented using the ParameterDifference utility class. There is still work to be done to unify when ParameterDifference is used for lookup (e.g. removing it from operator lookup when operators become simple aliases for macro names), but that work will be done in a separate CL. As part of this CL, the custom handling of "cast<>" operator in the .g4 grammar has been removed and replaced by a handful of equivalent overloads of a generic "cast" macro. Bug: v8:7793 Change-Id: Ibb2cdd3d58632b7f7f7ba683499f9688ae07f4f8 Reviewed-on: https://chromium-review.googlesource.com/1087873 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#53562}
-
Théotime Grohens authored
This CL fully implements the DataView getters for the Uint8, Int8, Uint16, Int16, Uint32 and Int32 types in Torque, and removes the runtime implementation that is not needed anymore. There should be a light but visible performance increase compared to the former runtime implementation. Change-Id: I7d85097fd5953b9629f3ac6bed93b068889712b2 Reviewed-on: https://chromium-review.googlesource.com/1078349 Commit-Queue: Théotime Grohens <theotime@google.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#53553}
-
- 24 May, 2018 1 commit
-
-
Théotime Grohens authored
This CL completely removes the C++ builtin implementation of the DataView.prototype.buffer, DataView.prototype.byteLength, and DataView.prototype.byteOffset getters, and moves them to a Torque implementation (that still relies on a bit of CSA). Change-Id: Id46678ae709c3787b7b93d0f78bd2a6e16e00f7b Reviewed-on: https://chromium-review.googlesource.com/1070369 Commit-Queue: Théotime Grohens <theotime@google.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#53339}
-
- 23 May, 2018 1 commit
-
-
Théotime Grohens authored
This CL adds a baseline Torque implementation of the DataView getters and setters. Right now, the Torque code just calls the C++ implementation, which has moved to runtime. Change-Id: Ic96fde7ea908c628af9586e84511037c237c4d3b Reviewed-on: https://chromium-review.googlesource.com/1061520Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Théotime Grohens <theotime@google.com> Cr-Commit-Position: refs/heads/master@{#53312}
-