- 23 Jun, 2020 1 commit
-
-
Daniel Clifford authored
This change enables automatic generation of Cast<> operators for classes that are defined in Torque. * Cast<> macros are generated for all classes that are defined in Torque code that are neither shapes nor marked with a new @doNotGenerateCast annotation. * Implicitly generated Cast macros simply call through to an internally-defined "DownCastForTorqueClass" macro that implements the cast using one of three strategies for efficiency. If the class has subclasses (i.e. a range of instance types including subtypes), the DownCastForTorqueClass checks for inclusion in the instance type range. If the class has a single instance type (i.e. no subclasses), then either 1) a map check is used if the class has a globally- defined map constant or 2) an equality check for the instance type is used. * Added new intrinsics to introspect class information, e.g. fetching instance type ranges for a class, accessing the globally-defined map for a class. * Removed a whole pile of existing explicit Cast<> operators that are no longer needed because of the implicitly generated Cast<> macros. * Added tests for the new Cast<> implementations. Bug: v8:7793 Change-Id: I3aadb0c62b720e9de4e7978b9ec4f05075771b8b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2250239 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#68478}
-
- 27 May, 2020 1 commit
-
-
Seth Brenith authored
This is a partial reland of https://crrev.com/c/v8/v8/+/2199640 . It includes removing an unused field. Change-Id: Iffc56a2bee751758dcba5c1ec162dcf9258db62d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2216303Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#68021}
-
- 26 May, 2020 1 commit
-
-
Seth Brenith authored
This reverts commit 4e5fabae. Reason for revert: performance regressions chromium:1085305, chromium:1084978 Original change's description: > [torque][cleanup] Use more precise field types in a few classes > > This change updates some Torque-defined classes to include more precise > field types where possible. It also updates those classes to use > @generateCppClass. One field was removed because it's unused > (PrototypeInfo::validity_cell), and two fields in StackFrameInfo > actually became less precise because they're based on Script::name, > which is an embedder-provided untyped Local<Value>. (Automatically > generated accessors pointed out this bug easily.) > > This change also includes a couple of minor fixes in Torque. > > Change-Id: Ib2bc6c7165bb3612b6d344c0686a94165a568277 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2199640 > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67907} TBR=ulan@chromium.org,tebbi@chromium.org,verwaest@chromium.org,seth.brenith@microsoft.com Change-Id: I720821d8dc84ea0d79eb137f1c2507f75df9a107 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2211322Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67972}
-
- 19 May, 2020 1 commit
-
-
Seth Brenith authored
This change updates some Torque-defined classes to include more precise field types where possible. It also updates those classes to use @generateCppClass. One field was removed because it's unused (PrototypeInfo::validity_cell), and two fields in StackFrameInfo actually became less precise because they're based on Script::name, which is an embedder-provided untyped Local<Value>. (Automatically generated accessors pointed out this bug easily.) This change also includes a couple of minor fixes in Torque. Change-Id: Ib2bc6c7165bb3612b6d344c0686a94165a568277 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2199640 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#67907}
-
- 22 Jan, 2020 1 commit
-
-
Shiyu Zhang authored
This is a reland of 3b753563 Original change's description: > Reland "[runtime] Cache prototype chain enumerable keys in PrototypeInfo" > > This is a reland of 5253d7bf > > Original change's description: > > [runtime] Cache prototype chain enumerable keys in PrototypeInfo > > > > This CL adds a prototype_chain_enum_cache to cache the enumeration of a > > prototype and its entire chain on the PrototypeInfo. It can improve for-in > > performance via simply merging the receiver enumeration with this cache. > > > > It improves the score of JetStream2-tagcloud-SP case by ~9% on IA Chromebook. > > > > Contributed by tao.pan@intel.com > > > > Change-Id: Ib40bfe41e772672337155584672f06fa1ba1e70d > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1870844 > > Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com> > > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#65224} > > Change-Id: I93b74727c46abbaab163324c50fbd977fcc9bb36 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955232 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com> > Cr-Commit-Position: refs/heads/master@{#65377} Change-Id: If4b4631e1b8a3d2df748b6be8500f838836a3291 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2008253 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#65919}
-
- 11 Dec, 2019 1 commit
-
-
Toon Verwaest authored
This reverts commit 3b753563. Reason for revert: breaks in multiple places: https://bugs.chromium.org/p/chromium/issues/detail?id=1029368 https://bugs.chromium.org/p/chromium/issues/detail?id=1029361 Original change's description: > Reland "[runtime] Cache prototype chain enumerable keys in PrototypeInfo" > > This is a reland of 5253d7bf > > Original change's description: > > [runtime] Cache prototype chain enumerable keys in PrototypeInfo > > > > This CL adds a prototype_chain_enum_cache to cache the enumeration of a > > prototype and its entire chain on the PrototypeInfo. It can improve for-in > > performance via simply merging the receiver enumeration with this cache. > > > > It improves the score of JetStream2-tagcloud-SP case by ~9% on IA Chromebook. > > > > Contributed by tao.pan@intel.com > > > > Change-Id: Ib40bfe41e772672337155584672f06fa1ba1e70d > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1870844 > > Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com> > > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#65224} > > Change-Id: I93b74727c46abbaab163324c50fbd977fcc9bb36 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955232 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com> > Cr-Commit-Position: refs/heads/master@{#65377} TBR=verwaest@chromium.org,shiyu.zhang@intel.com # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I5b0d544e802ffda6a6804931087f37cb112805ef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1962273Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#65418}
-
- 09 Dec, 2019 1 commit
-
-
Zhang, Shiyu authored
This is a reland of 5253d7bf Original change's description: > [runtime] Cache prototype chain enumerable keys in PrototypeInfo > > This CL adds a prototype_chain_enum_cache to cache the enumeration of a > prototype and its entire chain on the PrototypeInfo. It can improve for-in > performance via simply merging the receiver enumeration with this cache. > > It improves the score of JetStream2-tagcloud-SP case by ~9% on IA Chromebook. > > Contributed by tao.pan@intel.com > > Change-Id: Ib40bfe41e772672337155584672f06fa1ba1e70d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1870844 > Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65224} Change-Id: I93b74727c46abbaab163324c50fbd977fcc9bb36 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955232Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com> Cr-Commit-Position: refs/heads/master@{#65377}
-
- 29 Nov, 2019 1 commit
-
-
Toon Verwaest authored
This reverts commit 5253d7bf. Reason for revert: Elements don't properly invalidate the cache. Original change's description: > [runtime] Cache prototype chain enumerable keys in PrototypeInfo > > This CL adds a prototype_chain_enum_cache to cache the enumeration of a > prototype and its entire chain on the PrototypeInfo. It can improve for-in > performance via simply merging the receiver enumeration with this cache. > > It improves the score of JetStream2-tagcloud-SP case by ~9% on IA Chromebook. > > Contributed by tao.pan@intel.com > > Change-Id: Ib40bfe41e772672337155584672f06fa1ba1e70d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1870844 > Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65224} TBR=verwaest@chromium.org,shiyu.zhang@intel.com # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: Ic5d476bc8b334241b2accb8344749fcf7dcf5e09 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1943153Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#65259}
-
- 28 Nov, 2019 1 commit
-
-
Zhang, Shiyu authored
This CL adds a prototype_chain_enum_cache to cache the enumeration of a prototype and its entire chain on the PrototypeInfo. It can improve for-in performance via simply merging the receiver enumeration with this cache. It improves the score of JetStream2-tagcloud-SP case by ~9% on IA Chromebook. Contributed by tao.pan@intel.com Change-Id: Ib40bfe41e772672337155584672f06fa1ba1e70d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1870844 Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#65224}
-
- 11 Nov, 2019 1 commit
-
-
Tobias Tebbi authored
This creates a .tq file in src/objects for each src/objects/*.h file with Torque-defined classes and moves the object definitions and corresponding helpers/macros there. In addition, we create files convert.tq and cast.tq in src/builtins to move the casts and conversions to. Since Torque-generated .cc files end up as .o files in the same directory, there cannot be two .tq files of the same name. Thus it was necessary to rename src/builtins/arguments.tq and src/builtins/string.tq to not clash with the new files in src/objects. This is a mechanical change that only moves code. Design doc: http://doc/1fh4OUMjQMnQdJm3aiAPXQUNdgbQugkRGdJzDh8hmyzk Bug: v8:9861 v8:9810 v8:7793 Change-Id: I9c54cb50f32b9ae0fb41752199515133eb59ea5c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910100Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#64892}
-