1. 23 Jun, 2020 1 commit
    • Daniel Clifford's avatar
      [torque] generate Cast<> macros from Torque-defined classes · 1052dfb3
      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: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68478}
      1052dfb3
  2. 27 May, 2020 1 commit
  3. 26 May, 2020 1 commit
    • Seth Brenith's avatar
      Revert "[torque][cleanup] Use more precise field types in a few classes" · 16cb2d94
      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: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67972}
      16cb2d94
  4. 19 May, 2020 1 commit
  5. 22 Jan, 2020 1 commit
    • Shiyu Zhang's avatar
      Reland "Reland "[runtime] Cache prototype chain enumerable keys in PrototypeInfo"" · 6f3cf7aa
      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: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65919}
      6f3cf7aa
  6. 11 Dec, 2019 1 commit
  7. 09 Dec, 2019 1 commit
  8. 29 Nov, 2019 1 commit
    • Toon Verwaest's avatar
      Revert "[runtime] Cache prototype chain enumerable keys in PrototypeInfo" · 21ad38ef
      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: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarIgor 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}
      21ad38ef
  9. 28 Nov, 2019 1 commit
  10. 11 Nov, 2019 1 commit