- 09 Aug, 2022 1 commit
-
-
Qifan Pan authored
This is a reland of commit 30ee0690 Avoid terminating from another thread in unit tests to make the termination of optimized bigint multiplication deterministic on windows Original change's description: > Reland "[TurboFan] Support BigIntMultiply" > > This is a reland of commit ccde4205 > > Added a test case for terminating optimized bigint multiply and attached frame_state to the runtime call to provide deopt information to determine the throw location > > Original change's description: > > [TurboFan] Support BigIntMultiply > > > > Bug: v8:9407 > > Change-Id: Iab0a4ca8dd5d83444d1addd6043a5c8e3a8577a7 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3773773 > > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#82140} > > Bug: v8:9407 > Change-Id: Ia691d758265148da1de291365d41c7c1d1f98ddd > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3810391 > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82232} Bug: v8:9407 Change-Id: I7d04897f4e8f260aba31dbad55ce1263406473d9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3819621 Commit-Queue: Qifan Pan <panq@google.com> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#82304}
-
- 05 Aug, 2022 2 commits
-
-
Francis McCabe authored
This reverts commit 30ee0690. Reason for revert: breaks something on windows: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win64/47755/overview Original change's description: > Reland "[TurboFan] Support BigIntMultiply" > > This is a reland of commit ccde4205 > > Added a test case for terminating optimized bigint multiply and attached frame_state to the runtime call to provide deopt information to determine the throw location > > Original change's description: > > [TurboFan] Support BigIntMultiply > > > > Bug: v8:9407 > > Change-Id: Iab0a4ca8dd5d83444d1addd6043a5c8e3a8577a7 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3773773 > > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#82140} > > Bug: v8:9407 > Change-Id: Ia691d758265148da1de291365d41c7c1d1f98ddd > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3810391 > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82232} Bug: v8:9407 Change-Id: I006ed3770564149ae146c614c3d693de9ec29e41 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3812289 Owners-Override: Francis McCabe <fgm@chromium.org> Commit-Queue: Francis McCabe <fgm@chromium.org> Reviewed-by:
Francis McCabe <fgm@chromium.org> Auto-Submit: Francis McCabe <fgm@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#82233}
-
Qifan Pan authored
This is a reland of commit ccde4205 Added a test case for terminating optimized bigint multiply and attached frame_state to the runtime call to provide deopt information to determine the throw location Original change's description: > [TurboFan] Support BigIntMultiply > > Bug: v8:9407 > Change-Id: Iab0a4ca8dd5d83444d1addd6043a5c8e3a8577a7 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3773773 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82140} Bug: v8:9407 Change-Id: Ia691d758265148da1de291365d41c7c1d1f98ddd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3810391 Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#82232}
-
- 03 Aug, 2022 1 commit
-
-
Nico Hartmann authored
This reverts commit ccde4205. Reason for revert: Investigating performance regressions Original change's description: > [TurboFan] Support BigIntMultiply > > Bug: v8:9407 > Change-Id: Iab0a4ca8dd5d83444d1addd6043a5c8e3a8577a7 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3773773 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82140} Bug: v8:9407 Change-Id: I21de9fd43df2e043b4019d2bad560329ef0971b4 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3807584 Owners-Override: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#82168}
-
- 02 Aug, 2022 1 commit
-
-
Qifan Pan authored
Bug: v8:9407 Change-Id: Iab0a4ca8dd5d83444d1addd6043a5c8e3a8577a7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3773773Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#82140}
-
- 07 Feb, 2022 1 commit
-
-
Patrick Thier authored
We introduce a new information type ForwardingIndex to be stored in the Name::Hash field (to be used in the future). To do so we use the 2 least significant bit to distinguish types of information stored in the hash field (in contrast to only bit 1 to distinguis integer indicies from "real" hashes). This motivated a refactor to use base::BitField for the hash field. Bug: v8:12007 Change-Id: I651c86807edfc218792d0db12379374eaa50c930 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3432385Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/main@{#78975}
-
- 04 Feb, 2022 1 commit
-
-
Nico Hartmann authored
This is a reland of 517ed4ad Original change's description: > Reland "[Torque] Generalize Torque literals to larger size" > > Previously, literals in Torque were stored as double values, which > made it impossible to precisely represent 64 bit integer values. > This CL replaces the old literal expression with an integer and > floating point literal expression that are unbounded in size. We > allow implicit conversion of these literals to arbitary integer > and floating point types respectively and insert a corresponding > bounds check into generated CSA. > > Changes in the reland: Simplified IntegerLiteral to single digit. > > Bug: v8:7793, chromium:1289282 > Change-Id: I31c762c2f31165c7a1d0b07842b764e5851ce189 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406750 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78811} Bug: v8:7793, chromium:1289282 Change-Id: I7aadc4d2c9494f03eae85e94949c8f4cab7a075c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3437047Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#78939}
-
- 28 Jan, 2022 1 commit
-
-
Nico Hartmann authored
This reverts commit 517ed4ad. Reason for revert: There still seems to be an issue on V8 Win msvc related to this CL (https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win64%20-%20msvc/20568/overview). Original change's description: > Reland "[Torque] Generalize Torque literals to larger size" > > Previously, literals in Torque were stored as double values, which > made it impossible to precisely represent 64 bit integer values. > This CL replaces the old literal expression with an integer and > floating point literal expression that are unbounded in size. We > allow implicit conversion of these literals to arbitary integer > and floating point types respectively and insert a corresponding > bounds check into generated CSA. > > Changes in the reland: Simplified IntegerLiteral to single digit. > > Bug: v8:7793, chromium:1289282 > Change-Id: I31c762c2f31165c7a1d0b07842b764e5851ce189 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406750 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78811} Bug: v8:7793, chromium:1289282 Change-Id: I818cec9625fbd827a4a30088d8c8b759fb6c50d7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3424484 Owners-Override: Nico Hartmann <nicohartmann@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#78847}
-
- 27 Jan, 2022 1 commit
-
-
Nico Hartmann authored
Previously, literals in Torque were stored as double values, which made it impossible to precisely represent 64 bit integer values. This CL replaces the old literal expression with an integer and floating point literal expression that are unbounded in size. We allow implicit conversion of these literals to arbitary integer and floating point types respectively and insert a corresponding bounds check into generated CSA. Changes in the reland: Simplified IntegerLiteral to single digit. Bug: v8:7793, chromium:1289282 Change-Id: I31c762c2f31165c7a1d0b07842b764e5851ce189 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406750Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#78811}
-
- 20 Jan, 2022 1 commit
-
-
Nico Hartmann authored
This reverts commit 757830b0. Reason for revert: Speculatively revert due to a number of performance regressions Original change's description: > [Torque] Generalize Torque literals to larger size > > Previously, literals in Torque were stored as double values, which > made it impossible to precisely represent 64 bit integer values. > This CL replaces the old literal expression with an integer and > floating point literal expression that are unbounded in size. We > allow implicit conversion of these literals to arbitary integer > and floating point types respectively and insert a corresponding > bounds check into generated CSA. > > Bug: v8:7793 > Change-Id: I46c231aab92bc2f0c26955d1876079f306b358c6 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3329792 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78671} Bug: v8:7793 Change-Id: I9896e28b3c69b8cf2488bf93e993ec320d8c5d2e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3401866Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#78706}
-
- 18 Jan, 2022 1 commit
-
-
Nico Hartmann authored
Previously, literals in Torque were stored as double values, which made it impossible to precisely represent 64 bit integer values. This CL replaces the old literal expression with an integer and floating point literal expression that are unbounded in size. We allow implicit conversion of these literals to arbitary integer and floating point types respectively and insert a corresponding bounds check into generated CSA. Bug: v8:7793 Change-Id: I46c231aab92bc2f0c26955d1876079f306b358c6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3329792Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#78671}
-
- 28 Oct, 2021 1 commit
-
-
Tobias Tebbi authored
This is a reland of 45227ffd Differences: - Handle one more flags conflict in variants.py. - Disallow %VerifyType without --concurrent-recompilation. Original change's description: > [turbofan] extend type asserts to cover all JS types > > Extend type assertions to all types covering JavaScript values. > This is achieved by allocating type representations on the heap using > newly defined HeapObject subclasses. To allocate these in the compiler, > we disable concurrent compilation for the --assert-types flag for now. > > Fix two type errors that came up with the existing tests: > 1. JSCreateKeyValueArray has type Array (i.e., a JSArray) instead of > OtherObject. > 2. OperationTyper::NumberToString(Type) can type the result as the > HeapConstant Factory::zero_string(). However, NumberToString does > not always produce this string. To avoid regressions, the CL keeps > the HeapConstant type and changes the runtime and builtin code to > always produce the canonical "0" string. > > A few tests were failing because they check for truncations to work > and prevent deoptimization. However, AssertType nodes destroy all > truncations (which is by design), so these tests are incompatible > and now disabled for the assert_types variant. > > Drive-by fix: a few minor Torque issues that came up. > > Change-Id: If03b7851f7e6803a2f69edead4fa91231998f764 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3234717 > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/main@{#77565} Change-Id: I5b3c6745c6ad349ff8c2b199d9afdf0a9b5a7392 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3247035 Auto-Submit: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#77596}
-
- 27 Oct, 2021 2 commits
-
-
Maya Lekova authored
This reverts commit 45227ffd. Reason for revert: Breaks on gc_stress mode, see https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20gc%20stress/35988/overview Original change's description: > [turbofan] extend type asserts to cover all JS types > > Extend type assertions to all types covering JavaScript values. > This is achieved by allocating type representations on the heap using > newly defined HeapObject subclasses. To allocate these in the compiler, > we disable concurrent compilation for the --assert-types flag for now. > > Fix two type errors that came up with the existing tests: > 1. JSCreateKeyValueArray has type Array (i.e., a JSArray) instead of > OtherObject. > 2. OperationTyper::NumberToString(Type) can type the result as the > HeapConstant Factory::zero_string(). However, NumberToString does > not always produce this string. To avoid regressions, the CL keeps > the HeapConstant type and changes the runtime and builtin code to > always produce the canonical "0" string. > > A few tests were failing because they check for truncations to work > and prevent deoptimization. However, AssertType nodes destroy all > truncations (which is by design), so these tests are incompatible > and now disabled for the assert_types variant. > > Drive-by fix: a few minor Torque issues that came up. > > Change-Id: If03b7851f7e6803a2f69edead4fa91231998f764 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3234717 > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/main@{#77565} Change-Id: Ia779a11fc811846194c7a8d1e40b372b265e7ea4 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3247034 Auto-Submit: Maya Lekova <mslekova@chromium.org> Owners-Override: Maya Lekova <mslekova@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/main@{#77566}
-
Tobias Tebbi authored
Extend type assertions to all types covering JavaScript values. This is achieved by allocating type representations on the heap using newly defined HeapObject subclasses. To allocate these in the compiler, we disable concurrent compilation for the --assert-types flag for now. Fix two type errors that came up with the existing tests: 1. JSCreateKeyValueArray has type Array (i.e., a JSArray) instead of OtherObject. 2. OperationTyper::NumberToString(Type) can type the result as the HeapConstant Factory::zero_string(). However, NumberToString does not always produce this string. To avoid regressions, the CL keeps the HeapConstant type and changes the runtime and builtin code to always produce the canonical "0" string. A few tests were failing because they check for truncations to work and prevent deoptimization. However, AssertType nodes destroy all truncations (which is by design), so these tests are incompatible and now disabled for the assert_types variant. Drive-by fix: a few minor Torque issues that came up. Change-Id: If03b7851f7e6803a2f69edead4fa91231998f764 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3234717Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#77565}
-
- 30 Sep, 2021 1 commit
-
-
Marja Hölttä authored
It's confusing that we have CSA_CHECK and CSA_ASSERT and it's not clear from the names that the former works in release mode and the latter only in debug mode. Renaming CSA_ASSERT to CSA_DCHECK makes it clear what it does. So now we have CSA_CHECK and CSA_DCHECK and they're not confusing. This also renames assert() in Torque to dcheck(). Bug: v8:12244 Change-Id: I6f25d431ebc6eec7ebe326b6b8ad3a0ac5e9a108 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3190104Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Shu-yu Guo <syg@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#77160}
-
- 04 Dec, 2020 1 commit
-
-
Tobias Tebbi authored
Port String::Flatten to Torque (using a fast C call for the non-allocating part) and provide fast and easy access to sequential string data in Torque: GetStringData() flattens if necessary and computes slices that allow direct access. Applications: String.prototype.replaceAll, String.prototype.endsWith, and String.prototype.beginsWith now use GetStringData() and direct slice access instead of the slow StringCharCodeAt and they no longer bail out to the runtime for flattening. Drive-by changes: - Expose String instance type bits as bitfields and enums in Torque. - Fix method lookup in Torque to include superclass methods. - Use char8 and char16 types in more places. - Allow fast C calls with void return type. - Add Torque macros to create subslices. - Add no-GC scopes to runtime functions loading external string data. Bug: v8:7793 Change-Id: I763b9b24212770307c9b2fe9f070f21f65d68d58 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565515 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#71611}
-
- 30 Nov, 2020 1 commit
-
-
Tobias Tebbi authored
With this change, there are const and mutable version of slices, in analogy to const and mutable references, which we already have. A const slice as a readonly view into memory, it doesn't mean that nobody else has a writable view on it. An array field in a Torque class produces const slices if it is declared as const. Due to limitations in the Torque type system, mutable slices are not a subtype of const slices of the same type. Bug: v8:7793 Change-Id: I1ba96e1ee82bf03b5fdc824488981f2a6b5eae8a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2560195Reviewed-by:
Seth Brenith <seth.brenith@microsoft.com> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#71481}
-
- 11 Nov, 2020 1 commit
-
-
Igor Sheludko authored
This CL * renames Name::hash_field field to raw_hash_field. * all local variables that store raw_hash_field value are also renamed to raw_hash_field where possible. Bug: chromium:1133527, v8:11074 Change-Id: I17313f386110b33a64f629cc2b9d4afd1e06c6c0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2471999Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#71114}
-
- 17 Aug, 2020 1 commit
-
-
Z Nguyen-Huu authored
This is a reland of 1b35c0fa Reason for revert: Seems to reliably break a numerics test: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20debug/31516 It was really slow and timeout with debug build run this test mjsunit/math-exp-precision with --optimize-for-size because we resize cache in CSA. Default this to runtime would avoid the timeout. Also with --optimize-for-size, we don't have enough space to allocate full-size cache so avoid to resize cache in this case. In my local PC, time for this test decreases as follows. Before: 52s After: 3s Original change's description: > Improve NumberToString when cache miss and Smi > > Cache miss was handled in runtime before. This change add fast path for > Smi in this case. > > Perf show 30% improvement for the following example. > Before 67 ms > After 42 ms > > const start = new Date(); > const MAX = 1000000; > for (var i = 0; i < MAX; i++) { > i.toString(); > } > const end = new Date(); > console.log("Time :"+ (end-start)); > > Change-Id: I162e9c35f58551ca6a5a0efe79fb7c7b482a8594 > Bug: v8:10477 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332866 > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69362} Bug: v8:10477 Change-Id: I892a9007210032640d0bf22e61c8e7ad1a4377c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2351398Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#69413}
-
- 12 Aug, 2020 2 commits
-
-
Bill Budge authored
This reverts commit 1b35c0fa. Reason for revert: Seems to reliably break a numerics test: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20debug/31516 Original change's description: > Improve NumberToString when cache miss and Smi > > Cache miss was handled in runtime before. This change add fast path for > Smi in this case. > > Perf show 30% improvement for the following example. > Before 67 ms > After 42 ms > > const start = new Date(); > const MAX = 1000000; > for (var i = 0; i < MAX; i++) { > i.toString(); > } > const end = new Date(); > console.log("Time :"+ (end-start)); > > Change-Id: I162e9c35f58551ca6a5a0efe79fb7c7b482a8594 > Bug: v8:10477 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332866 > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69362} TBR=jgruber@chromium.org,leszeks@chromium.org,duongn@microsoft.com Change-Id: I80f6bdb0464c0034e6c4a16478848618cef7e046 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10477 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2351389Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#69365}
-
Z Nguyen-Huu authored
Cache miss was handled in runtime before. This change add fast path for Smi in this case. Perf show 30% improvement for the following example. Before 67 ms After 42 ms const start = new Date(); const MAX = 1000000; for (var i = 0; i < MAX; i++) { i.toString(); } const end = new Date(); console.log("Time :"+ (end-start)); Change-Id: I162e9c35f58551ca6a5a0efe79fb7c7b482a8594 Bug: v8:10477 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332866 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#69362}
-
- 06 Aug, 2020 1 commit
-
-
Z Nguyen-Huu authored
Just a fast iteration over bytes written in Torque for Smi number and non-decimal radix, also only for more than one string character result. Improve following micro-benchmark by ~75% Before toHexString toHexString-Numbers(Score): 7905000 After toHexString toHexString-Numbers(Score): 14419000 Bug: v8:10477 Change-Id: I366092d4d70156ad33830352c1122af8794bea76 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2330221 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#69272}
-
- 29 May, 2020 1 commit
-
-
Bill Budge authored
- Changes javascript builtins to use explicit parameters rather than variadic, where possible. tbr=tebbi@chromium.org Bug: chromium:1085370 Change-Id: I84f01684729b32a9d27df3d021e72c34cc3a8aaf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2215225 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#68079}
-
- 27 May, 2020 2 commits
-
-
Bill Budge authored
- Converts the last builtin, Add to Torque. Bug: v8:9891 Change-Id: Iefa16b0d4c586ff91b54ead13fa9846064e6eda8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2204155 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#68026}
-
Bill Budge authored
- Moves some CSA macros back into the global namespace, and uses Torque's new global namespace feature to disambiguate the calls. Bug: v8:9891 Change-Id: I6a94ee04daed1e6a8f672b2eaa12161ab998f14c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2216932Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#68017}
-
- 26 May, 2020 1 commit
-
-
Tobias Tebbi authored
Bug: v8:7793 Change-Id: I5eac73a2b437e5e2d4005f79b7807ae7a9ed78e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2214829Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#67976}
-
- 20 May, 2020 1 commit
-
-
Bill Budge authored
This is a reland of 4482f988 It's identical to the original CL so .. TBR=jgruber@chromium.org,tebbi@chromium.org Original change's description: > [torque] Port builtins-number-gen to Torque > > - Ports everything except Add. > > Builtins generated from this CL are slightly larger, e.g. Subtract > is 424 bytes on x64, as opposed to 400 bytes for the CSA version. > See https://crbug.com/v8/10521 > > Bug: v8:9891 > > Change-Id: Id85779eb26d8e51643d8a04f0a75090bc50ef5b2 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2191644 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67910} Bug: v8:9891 Change-Id: I910c95db7bc044b2457364f4bfbbca46f0745bb9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2209265 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#67926}
-
- 19 May, 2020 3 commits
-
-
Bill Budge authored
This reverts commit 4482f988. Reason for revert: Causes Torque to break UBSAN https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/11235? [764/2199] ACTION //:run_torque(//build/toolchain/linux:clang_x64) FAILED: gen/torque-generated/bit-fields-tq.h gen/torque-generated/builtin-definitions-tq.h gen/torqu...(too long) python ../../tools/run.py ./torque -o gen/torque-generated -v8-root ../.. src/builtins/array-copywit...(too long) ../../src/torque/implementation-visitor.cc:778:36: runtime error: 2.14748e+09 is outside the range of representable values of type 'int' Original change's description: > [torque] Port builtins-number-gen to Torque > > - Ports everything except Add. > > Builtins generated from this CL are slightly larger, e.g. Subtract > is 424 bytes on x64, as opposed to 400 bytes for the CSA version. > See https://crbug.com/v8/10521 > > Bug: v8:9891 > > Change-Id: Id85779eb26d8e51643d8a04f0a75090bc50ef5b2 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2191644 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67910} TBR=bbudge@chromium.org,jgruber@chromium.org,tebbi@chromium.org Change-Id: Ib124c893753973243563e32c25bc727a5df2ca53 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9891 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2209264Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#67911}
-
Bill Budge authored
- Ports everything except Add. Builtins generated from this CL are slightly larger, e.g. Subtract is 424 bytes on x64, as opposed to 400 bytes for the CSA version. See https://crbug.com/v8/10521 Bug: v8:9891 Change-Id: Id85779eb26d8e51643d8a04f0a75090bc50ef5b2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2191644 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#67910}
-
Bill Budge authored
- Ports all conversions that Torque can handle (without weird linkage.) - Moves NumberToString to number:: namespace. - Moves ToStringImpl to string:: namespace. Bug: v8:9891 Change-Id: I5190c545952e1d9810ca71ae7ff4a807d2d98781 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2205192 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#67903}
-
- 12 May, 2020 1 commit
-
-
Tobias Tebbi authored
Bug: v8:7793 Change-Id: Id2a93f8ac8c512dbc5cdeb43a97e04d8d6684954 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2196130 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#67748}
-
- 02 Mar, 2020 1 commit
-
-
Shu-yu Guo authored
The spec was changed in February TC39 to make ToInteger always normalize -0 to +0. This only observably affects Atomics.store. Bug: v8:10271 Change-Id: I0e8f6c35cef982eae242cf6619f6f24fa75b1759 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2076509Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#66543}
-
- 21 Feb, 2020 1 commit
-
-
Nico Hartmann authored
Bug: v8:10155 Change-Id: I032b27ad7c71d240453e33bef33a447a1530ace9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2060005 Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#66387}
-
- 18 Dec, 2019 1 commit
-
-
Nico Hartmann authored
This CL implements enums in Torque in three steps: 1.) It implements necessary changes to Torque's type system. In particular, the constraints on constexpr types are relaxed such that constexpr types can exist without a corresponding non-constexpr version. Furthermore, constexpr and their non-constexpr counterpart need not be of the same kind of type. This allows an AbstractType to have a UnionType as its non-constexpr counterpart. 2.) The enum feature itself is realized as a pure desugaring in the parser, where all required types, constants and macro specializations (like FromConstexpr<>) are generated from a simple enum declaration, such that enum entries are not just constants, but are namespace scoped and have distinct types so that they can be used within typeswitch constructs. 3.) Almost all of the existing constants defined in torque (.tq files) are ported to new enum definitions. Bug: v8:10053 Change-Id: I72426d3b1434f301fd690847e15603de0dc1021b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1964392 Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65503}
-
- 20 Nov, 2019 1 commit
-
-
Tobias Tebbi authored
That's possible because JS builtins are JSFunctions that embed a NativeContext. Bug: v8:7793 Change-Id: Id2bf7844fcfb53df733100f1e3e554f25a78482a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1926150Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65068}
-
- 16 Nov, 2019 1 commit
-
-
Mike Stanton authored
Bug: v8:9810 Change-Id: I29bb3db071c1957cc2a94fa7a47109cc0bab56f1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916599 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#64992}
-
- 13 Nov, 2019 1 commit
-
-
Mike Stanton authored
This is part of a general move of math builtins away from builtins-math-gen.cc. Change-Id: Ifb6e5d4779bb9e6f69ff7c58d09ca8fc94f4cc66 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914210 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#64943}
-
- 05 Nov, 2019 1 commit
-
-
ajihyf authored
Bug: v8:7864 Change-Id: Iaeca4ab9d098edc73b2191dc260dd37a6114f3bc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893732 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64760}
-