1. 08 Jun, 2021 1 commit
  2. 26 May, 2021 1 commit
  3. 25 May, 2021 1 commit
  4. 21 May, 2021 1 commit
  5. 19 May, 2021 1 commit
  6. 14 May, 2021 1 commit
    • Shu-yu Guo's avatar
      Reland^4 "[ptr-cage] Turn on shared pointer cage by default for arm64 and x64" · baa4ba3f
      Shu-yu Guo authored
      This is a reland of 8b74fd45
      
      Changes since revert:
      
      - Reverted a61aa491 for not fixing the
        jitless toggling issue on Chromium Win64
      
      - Fix jitless toggling on Win64 by checking FLAG_jitless in
        EmbeddedDataWithMaybeRemappedEmbeddedBuiltins
      
      Original change's description:
      > Reland^3 "[ptr-cage] Turn on shared pointer cage by default for arm64 and x64""
      >
      > This is a reland of 054ff044
      >
      > Change since revert:
      >
      > - Remove assignment to FLAG_enable_short_builtins in test since
      >   it's write-once in CFI.
      >
      > Original change's description:
      > > Reland^2 "[ptr-cage] Turn on shared pointer cage by default for arm64 and x64"
      > >
      > > This is a reland of 1f504c36
      > >
      > > Changes since revert:
      > >
      > > - Removed disabling of RO heap sharing when --stress-snapshot is passed;
      > >   was fixed by f4a6c628
      > > - Fixed crashing tests that caused revert separately in
      > >   a61aa491
      > >
      > > Original change's description:
      > > > > [ptr-cage] Turn on shared pointer cage by default for arm64 and x64
      > > > >
      > > > > Reviewed-on:
      > > > https://chromium-review.googlesource.com/c/v8/v8/+/2873226
      > > > > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > > > > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > > > > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > > > > Cr-Commit-Position: refs/heads/master@{#74422}
      > > >
      > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2878855
      > > > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > > > Reviewed-by: Adam Klein <adamk@chromium.org>
      > > > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > > > Reviewed-by: Dan Elphick <delphick@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#74448}
      > >
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2891460
      > > Reviewed-by: Adam Klein <adamk@chromium.org>
      > > Commit-Queue: Shu-yu Guo <syg@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#74546}
      >
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2893567
      > Reviewed-by: Shu-yu Guo <syg@chromium.org>
      > Reviewed-by: Adam Klein <adamk@chromium.org>
      > Commit-Queue: Shu-yu Guo <syg@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#74548}
      
      TBR=ishell@chromium.org
      
      Bug: v8:11460
      Change-Id: Ied925de5f886a906b1ca178365aee73155e679cb
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2891697Reviewed-by: 's avatarShu-yu Guo <syg@chromium.org>
      Commit-Queue: Shu-yu Guo <syg@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#74560}
      baa4ba3f
  7. 13 May, 2021 3 commits
    • Bill Budge's avatar
      Revert "Reland^3 "[ptr-cage] Turn on shared pointer cage by default for arm64 and x64""" · 9ee5bdc9
      Bill Budge authored
      This reverts commit 8b74fd45.
      
      Reason for revert: Blocking the roll into Chromium, example failure on Windows 64 bot:
      
      https://ci.chromium.org/p/chromium/builders/try/win10_chromium_x64_rel_ng/863189?
      
      Original change's description:
      > Reland^3 "[ptr-cage] Turn on shared pointer cage by default for arm64 and x64""
      >
      > This is a reland of 054ff044
      >
      > Change since revert:
      >
      > - Remove assignment to FLAG_enable_short_builtins in test since
      >   it's write-once in CFI.
      >
      > Original change's description:
      > > Reland^2 "[ptr-cage] Turn on shared pointer cage by default for arm64 and x64"
      > >
      > > This is a reland of 1f504c36
      > >
      > > Changes since revert:
      > >
      > > - Removed disabling of RO heap sharing when --stress-snapshot is passed;
      > >   was fixed by f4a6c628
      > > - Fixed crashing tests that caused revert separately in
      > >   a61aa491
      > >
      > > Original change's description:
      > > > > [ptr-cage] Turn on shared pointer cage by default for arm64 and x64
      > > > >
      > > > > Reviewed-on:
      > > > https://chromium-review.googlesource.com/c/v8/v8/+/2873226
      > > > > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > > > > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > > > > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > > > > Cr-Commit-Position: refs/heads/master@{#74422}
      > > >
      > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2878855
      > > > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > > > Reviewed-by: Adam Klein <adamk@chromium.org>
      > > > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > > > Reviewed-by: Dan Elphick <delphick@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#74448}
      > >
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2891460
      > > Reviewed-by: Adam Klein <adamk@chromium.org>
      > > Commit-Queue: Shu-yu Guo <syg@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#74546}
      >
      > TBR=adamk@chromium.org
      >
      > Bug: v8:11460
      > Change-Id: Ib7526270d421a562cb00aec9a28b4fc2296e4a86
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2893567
      > Reviewed-by: Shu-yu Guo <syg@chromium.org>
      > Reviewed-by: Adam Klein <adamk@chromium.org>
      > Commit-Queue: Shu-yu Guo <syg@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#74548}
      
      Bug: v8:11460
      Change-Id: Ie1a6a5d7e7928f6b90571a33dc743ca5d1d082b4
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2893823
      Auto-Submit: Bill Budge <bbudge@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/master@{#74557}
      9ee5bdc9
    • Shu-yu Guo's avatar
      Reland^3 "[ptr-cage] Turn on shared pointer cage by default for arm64 and x64"" · 8b74fd45
      Shu-yu Guo authored
      This is a reland of 054ff044
      
      Change since revert:
      
      - Remove assignment to FLAG_enable_short_builtins in test since
        it's write-once in CFI.
      
      Original change's description:
      > Reland^2 "[ptr-cage] Turn on shared pointer cage by default for arm64 and x64"
      >
      > This is a reland of 1f504c36
      >
      > Changes since revert:
      >
      > - Removed disabling of RO heap sharing when --stress-snapshot is passed;
      >   was fixed by f4a6c628
      > - Fixed crashing tests that caused revert separately in
      >   a61aa491
      >
      > Original change's description:
      > > > [ptr-cage] Turn on shared pointer cage by default for arm64 and x64
      > > >
      > > > Reviewed-on:
      > > https://chromium-review.googlesource.com/c/v8/v8/+/2873226
      > > > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > > > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > > > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#74422}
      > >
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2878855
      > > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > > Reviewed-by: Adam Klein <adamk@chromium.org>
      > > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > > Reviewed-by: Dan Elphick <delphick@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#74448}
      >
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2891460
      > Reviewed-by: Adam Klein <adamk@chromium.org>
      > Commit-Queue: Shu-yu Guo <syg@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#74546}
      
      TBR=adamk@chromium.org
      
      Bug: v8:11460
      Change-Id: Ib7526270d421a562cb00aec9a28b4fc2296e4a86
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2893567Reviewed-by: 's avatarShu-yu Guo <syg@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Shu-yu Guo <syg@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#74548}
      8b74fd45
    • Bill Budge's avatar
      Revert "Reland^2 "[ptr-cage] Turn on shared pointer cage by default for arm64 and x64"" · 01f9e1f7
      Bill Budge authored
      This reverts commit 054ff044.
      
      Reason for revert: Breaks Arm64 build:
      
      https://ci.chromium.org/p/v8/builders/ci/V8%20Android%20Arm64%20-%20debug%20builder/18683
      
      Original change's description:
      > Reland^2 "[ptr-cage] Turn on shared pointer cage by default for arm64 and x64"
      >
      > This is a reland of 1f504c36
      >
      > Changes since revert:
      >
      > - Removed disabling of RO heap sharing when --stress-snapshot is passed;
      >   was fixed by f4a6c628
      > - Fixed crashing tests that caused revert separately in
      >   a61aa491
      >
      > Original change's description:
      > > > [ptr-cage] Turn on shared pointer cage by default for arm64 and x64
      > > >
      > > > Reviewed-on:
      > > https://chromium-review.googlesource.com/c/v8/v8/+/2873226
      > > > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > > > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > > > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#74422}
      > >
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2878855
      > > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > > Reviewed-by: Adam Klein <adamk@chromium.org>
      > > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > > Reviewed-by: Dan Elphick <delphick@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#74448}
      >
      > Bug: v8:11460
      > Change-Id: I4e491574437f4c832e24b29815de6bdfd8975511
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2891460
      > Reviewed-by: Adam Klein <adamk@chromium.org>
      > Commit-Queue: Shu-yu Guo <syg@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#74546}
      
      Bug: v8:11460
      Change-Id: I772afcd100d3d92b7e3f5f060c670a5686c9a338
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2892843
      Auto-Submit: Bill Budge <bbudge@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/master@{#74547}
      01f9e1f7
  8. 12 May, 2021 1 commit
  9. 10 May, 2021 2 commits
  10. 07 May, 2021 1 commit
  11. 06 May, 2021 3 commits
  12. 29 Apr, 2021 1 commit
  13. 20 Apr, 2021 1 commit
    • Sathya Gunasekaran's avatar
      Reland "[ic] Add a new MegaDOM IC" · fbd114bd
      Sathya Gunasekaran authored
      This is a reland of c83c9590
      
      Changes since revert: nothing, issue was crbug.com/v8/11666
      
      Original change's description:
      > [ic] Add a new MegaDOM IC
      >
      > This patch implements the MegaDOM IC setup and access. A new MegaDOM
      > IC state indicates that we've seen only DOM accessors at this access
      > site.
      >
      > This CL only adds support for DOM getters in LoadIC, other kinds of
      > access will be added in follow on CLs.
      >
      > Still remaining TODO before shipping:
      > 1. Have a mechanism to invalidate the protector
      > 2. Have a mechanism to find the accessors that aren't overloaded
      > 3. Use a new builtin to miss to runtime on access check failure
      >
      > Change-Id: Ie12efe5e9fa284f023043b996d61e7d74e710ee2
      > Bug: v8:11321
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2618239
      > Reviewed-by: Omer Katz <omerkatz@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Mythri Alle <mythria@chromium.org>
      > Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73733}
      
      Bug: v8:11321
      Change-Id: I2bec54465542b5b40c42adb6eb12b6ce72cce5bd
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2794439Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#74056}
      fbd114bd
  14. 08 Apr, 2021 1 commit
  15. 31 Mar, 2021 2 commits
    • Maya Lekova's avatar
      Revert "[ic] Add a new MegaDOM IC" · 3f8aa89e
      Maya Lekova authored
      This reverts commit c83c9590.
      
      Reason for revert: Speculatively reverting for a failure on Arm GC stress bot - https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Arm%20GC%20Stress/b8851256837192083520/overview
      
      Original change's description:
      > [ic] Add a new MegaDOM IC
      >
      > This patch implements the MegaDOM IC setup and access. A new MegaDOM
      > IC state indicates that we've seen only DOM accessors at this access
      > site.
      >
      > This CL only adds support for DOM getters in LoadIC, other kinds of
      > access will be added in follow on CLs.
      >
      > Still remaining TODO before shipping:
      > 1. Have a mechanism to invalidate the protector
      > 2. Have a mechanism to find the accessors that aren't overloaded
      > 3. Use a new builtin to miss to runtime on access check failure
      >
      > Change-Id: Ie12efe5e9fa284f023043b996d61e7d74e710ee2
      > Bug: v8:11321
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2618239
      > Reviewed-by: Omer Katz <omerkatz@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Mythri Alle <mythria@chromium.org>
      > Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73733}
      
      Bug: v8:11321
      Change-Id: Ib6a55796f2a3c345d4923f9eaa215a6ff55ed15b
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2794437
      Auto-Submit: 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/master@{#73734}
      3f8aa89e
    • Sathya Gunasekaran's avatar
      [ic] Add a new MegaDOM IC · c83c9590
      Sathya Gunasekaran authored
      This patch implements the MegaDOM IC setup and access. A new MegaDOM
      IC state indicates that we've seen only DOM accessors at this access
      site.
      
      This CL only adds support for DOM getters in LoadIC, other kinds of
      access will be added in follow on CLs.
      
      Still remaining TODO before shipping:
      1. Have a mechanism to invalidate the protector
      2. Have a mechanism to find the accessors that aren't overloaded
      3. Use a new builtin to miss to runtime on access check failure
      
      Change-Id: Ie12efe5e9fa284f023043b996d61e7d74e710ee2
      Bug: v8:11321
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2618239Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73733}
      c83c9590
  16. 11 Mar, 2021 3 commits
    • Clemens Backes's avatar
      Reland "[no-wasm] Exclude src/wasm from compilation" · 3f9ff062
      Clemens Backes authored
      This is a reland of 80f5dfda. A condition
      in pipeline.cc was inverted, which lead to a CSA verifier error.
      
      Original change's description:
      > [no-wasm] Exclude src/wasm from compilation
      >
      > This is the biggest chunk, including
      > - all of src/wasm,
      > - torque file for wasm objects,
      > - torque file for wasm builtins,
      > - wasm builtins,
      > - wasm runtime functions,
      > - int64 lowering,
      > - simd scala lowering,
      > - WasmGraphBuilder (TF graph construction for wasm),
      > - wasm frame types,
      > - wasm interrupts,
      > - the JSWasmCall opcode,
      > - wasm backing store allocation.
      >
      > Those components are all recursively entangled, so I found no way to
      > split this change up further.
      >
      > Some includes that were recursively included by wasm headers needed to
      > be added explicitly now.
      >
      > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
      > because it only tests wasm backing stores. This file is excluded from
      > no-wasm builds then.
      >
      > R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
      >
      > Bug: v8:11238
      > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73344}
      
      TBR=jgruber@chromium.org
      
      Bug: v8:11238
      Change-Id: I20bd2847a59c68738b5a336cd42582b7b1499585
      Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      Cq-Include-Trybots: luci.v8.try:v8_linux_verify_csa_rel_ng
      Cq-Include-Trybots: luci.v8.try:v8_linux64_verify_csa_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752867Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73348}
      3f9ff062
    • Clemens Backes's avatar
      Revert "[no-wasm] Exclude src/wasm from compilation" · 92bc3d38
      Clemens Backes authored
      This reverts commit 80f5dfda.
      
      Reason for revert: Fails CSA verification: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20verify%20csa/21766/overview
      
      Original change's description:
      > [no-wasm] Exclude src/wasm from compilation
      >
      > This is the biggest chunk, including
      > - all of src/wasm,
      > - torque file for wasm objects,
      > - torque file for wasm builtins,
      > - wasm builtins,
      > - wasm runtime functions,
      > - int64 lowering,
      > - simd scala lowering,
      > - WasmGraphBuilder (TF graph construction for wasm),
      > - wasm frame types,
      > - wasm interrupts,
      > - the JSWasmCall opcode,
      > - wasm backing store allocation.
      >
      > Those components are all recursively entangled, so I found no way to
      > split this change up further.
      >
      > Some includes that were recursively included by wasm headers needed to
      > be added explicitly now.
      >
      > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
      > because it only tests wasm backing stores. This file is excluded from
      > no-wasm builds then.
      >
      > R=​jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
      >
      > Bug: v8:11238
      > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73344}
      
      Bug: v8:11238
      Change-Id: I93672002c1faa36bb0bb5b4a9cc2032ee2ccd814
      Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752866
      Auto-Submit: Clemens Backes <clemensb@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/master@{#73346}
      92bc3d38
    • Clemens Backes's avatar
      [no-wasm] Exclude src/wasm from compilation · 80f5dfda
      Clemens Backes authored
      This is the biggest chunk, including
      - all of src/wasm,
      - torque file for wasm objects,
      - torque file for wasm builtins,
      - wasm builtins,
      - wasm runtime functions,
      - int64 lowering,
      - simd scala lowering,
      - WasmGraphBuilder (TF graph construction for wasm),
      - wasm frame types,
      - wasm interrupts,
      - the JSWasmCall opcode,
      - wasm backing store allocation.
      
      Those components are all recursively entangled, so I found no way to
      split this change up further.
      
      Some includes that were recursively included by wasm headers needed to
      be added explicitly now.
      
      backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
      because it only tests wasm backing stores. This file is excluded from
      no-wasm builds then.
      
      R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
      
      Bug: v8:11238
      Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
      Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73344}
      80f5dfda
  17. 08 Mar, 2021 1 commit
    • Seth Brenith's avatar
      Remove 'length' field from ScopeInfo · 90a66422
      Seth Brenith authored
      This change relands the last part of https://crrev.com/c/2601880 .
      
      ScopeInfo has a vestigial 'length' field from when it used to be a
      FixedArray. This change removes that field, which saves some memory.
      
      More specifically:
      
      - Make ScopeInfo inherit from HeapObject, not FixedArrayBase which
        supplied the 'length' field.
      - Change FactoryBase::NewScopeInfo to allocate the updated object shape.
        It maintains the existing behavior of filling the newly-allocated
        object with undefined, even though that's not a valid ScopeInfo and
        further initialization is required.
      - Change a few length computations to use HeapObject::kHeaderSize rather
        than FixedArray::kHeaderSize.
      - Remove an unnecessary heap verifier function.
      
      Change-Id: I9b3980157568fdb0402fa31660949966b401fd31
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2733037Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#73278}
      90a66422
  18. 19 Feb, 2021 2 commits
    • Frank Emrich's avatar
      [dict-proto] C++ implementation of SwissNameDictionary, pt. 3 · a2c31f74
      Frank Emrich authored
      This is a reland of
      https://chromium-review.googlesource.com/c/v8/v8/+/2688058
      
      This CL is part of a series that adds the C++ implementation of
      SwissNameDictionary, a deterministic property backing store based on
      Swiss Tables.
      
      This CL adds the initialization code, factory functions and a
      canonical SwissNameDictionary plus all helpers required for that.
      
      Bug: v8:11388
      Change-Id: I9cf66a3fa755288f7730f55abfb6e6cea82f6b03
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2703653
      Commit-Queue: Frank Emrich <emrich@google.com>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72857}
      a2c31f74
    • Seth Brenith's avatar
      Revert "Remove 'length' field from ScopeInfo" · 6c922e39
      Seth Brenith authored
      This reverts commit f731e13f.
      
      Reason for revert: perf regressions, chromium:1179757
      
      Original change's description:
      > Remove 'length' field from ScopeInfo
      >
      > ScopeInfo has a vestigial 'length' field from when it used to be a
      > FixedArray. This change removes that field, which saves some memory.
      >
      > More specifically:
      >
      > - Make ScopeInfo inherit from HeapObject, not FixedArrayBase which
      >   supplied the 'length' field.
      > - Privatize the FixedArray-style functions that provide access to
      >   ScopeInfo fields by index, and move them from scope-info-inl.h to
      >   scope-info.cc. Those functions are still used pretty heavily during
      >   initialization (ScopeInfo::Create, etc.), but at least we can avoid
      >   presenting them to the rest of the world.
      > - Change FactoryBase::NewScopeInfo to allocate the updated object shape.
      >   It maintains the existing behavior of filling the newly-allocated
      >   object with undefined, even though that's not a valid ScopeInfo and
      >   further initialization is required.
      > - Move part of AccessorAssembler::ScriptContextTableLookup into a new
      >   Torque macro, because it used to rely on casting ScopeInfo to
      >   FixedArrayBase.
      > - In V8HeapExplorer::AddEntry, don't claim that ScopeInfo objects are
      >   arrays. I think it makes more sense to list them under "(system)" in
      >   the dev tools, like most other V8 internal types.
      >
      > Bug: v8:8952
      > Change-Id: I8278e3a90027d4409f0d268da0fe7080754c6b8c
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2601880
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
      > Reviewed-by: Mythri Alle <mythria@chromium.org>
      > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      > Cr-Commit-Position: refs/heads/master@{#72830}
      
      Bug: v8:8952
      Change-Id: I00a69da79e5ac6aaae4436a41ce773ae014cc775
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2706086
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Auto-Submit: Seth Brenith <seth.brenith@microsoft.com>
      Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
      Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72855}
      6c922e39
  19. 17 Feb, 2021 3 commits
  20. 12 Feb, 2021 4 commits
    • Benedikt Meurer's avatar
      [inspector][stack-traces] Remove support for "displayName". · a9b6f3f7
      Benedikt Meurer authored
      As outlined in the design document linked below, we're removing the
      support for the non-standard Function.displayName property for the
      purpose of Error.stack and DevTools Inspector stack traces. The
      motivation here is that the negative lookup is costly, and we have
      Function.name as a standard alternative (configurable since ES6 for
      exactly this reason).
      
      I dediced to go with JSFunction::GetDebugName(), since
      JSFunction::GetName() was confusing in that it'd only get the "name"
      property's value if it's a data property, but not with accessors.
      JSFunction::GetDebugName() makes it clear that this is really a debug
      helper function and might not give you the "name" property value.
      
      Doc: https://bit.ly/devtools-function-displayName-removal
      Bug: v8:8742, chromium:1177685, chromium:1077657, chromium:17356
      Change-Id: I7717585cbace626174b2f2ed2a4f68f75429eca1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692189
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72715}
      a9b6f3f7
    • Leszek Swirski's avatar
      [sparkplug] Change Sparkplug to Baseline · c913ef3a
      Leszek Swirski authored
      Currently we sometimes refer to baseline code or the baseline compiler
      by its codename (Sparkplug). The codename is fun, but we should be
      consistent and call things by one name or the other. Following the
      pattern of Ignition stuff being called "interpreter", we call Sparkplug
      "baseline", and leave the codename only in flags and variants.
      
      Bug: v8:11420
      Change-Id: I432e5629518be7c7ad38b6acff024c91d4cfd6d3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692186
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72696}
      c913ef3a
    • Benedikt Meurer's avatar
      [stack-traces] Simplify and speedup stack trace collection. · eed0d27c
      Benedikt Meurer authored
      Following up on https://crrev.com/c/2689185, this CL significantly
      simplifies the whole implementation of the stack trace capturing.
      
      Before this CL, capturing any stack trace (for the purpose of the API or
      Error.stack) would roughly work like this:
      
        1. The CaptureStackTrace() function uses the StackFrameIterator to
           walk the system stack. For each native frame it uses the
           FrameSummary abstraction to get all (including potentially inlined)
           frames. For each of those it appends a record consisting of six
           elements to a FrameArray (this holds pointers to the actual
           closures and receivers).
        2. Afterwards the FrameArray is shrinked to the required size, and a
           new FixedArray is allocated, and initialized with new
           StackTraceFrame objects where each holds a reference to the
           FrameArray, the index of the frame, and an initially uninitialized
           StackFrameInfo reference. This new FixedArray is then returned from
           CaptureStackTrace() and either stored on a message object or
           provided to the API as v8::StackTrace.
      
      The new approach removes a lot of the machinery in between and directly
      creates a FixedArray of StackFrameInfo objects in CaptureStackTrace().
      These StackFrameInfo objects are directly exposed as v8::StackFrame on
      the public API, and they hold the six fields that were previously stored
      flat in the FrameArray. This not only avoids a lot of copying around of
      data and creation of temporary objects and handles, but most importantly
      unifies and simplifies the stack frame function inside StackFrameInfo,
      so you no longer need to wonder which function / object might be
      responsible for a certain API.
      
      There's still a lot of room for improvement. In particular we currently
      don't cache the source position for a given StackFrameInfo (or
      globally), but rather recompute it every time. This is still very fast,
      significantly faster than the previous approach.
      
      There are some notable (potentially user visible) changes:
      
        - The CallSite#GetPosition() method now consistently returns the
          Wasm module relative bytecode offset for all Wasm frames (previously
          it'd return the function relative bytecode offset for non-asm.js
          Wasm frames).
        - The column and line numbers returned from StackFrameInfo methods are
          consistently 1-based now, instead of sometimes being 0-based (Wasm)
          and sometimes being 1-based (JS and asm.js Wasm). The only
          potentially noticable difference is that for
          CallSite#GetLineNumber() no longer returns 0 for Wasm frames, but
          that was wrong and useless anyways.
        - CallSite#GetThis() would sometimes return the_hole, another bug
          flushed out by this CL.
      
      The CL also contains some other not noteworthy drive-by-cleanups.
      
      Fixed: chromium:1057211
      Bug: chromium:1077657, chromium:1069425, v8:8742
      Bug: chromium:1127391, chromium:1098530, chromium:981541
      Change-Id: Iff12f6838a4d99080db8dd96bccc14440affc5a5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2689183
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72694}
      eed0d27c
    • Leszek Swirski's avatar
      [sparkplug] Upstream Sparkplug · c053419e
      Leszek Swirski authored
      Sparkplug is a new baseline, non-optimising second-tier compiler,
      designed to fit in the compiler trade-off space between Ignition and
      TurboProp/TurboFan.
      
      Design doc:
      https://docs.google.com/document/d/13c-xXmFOMcpUQNqo66XWQt3u46TsBjXrHrh4c045l-A/edit?usp=sharing
      
      Bug: v8:11420
      Change-Id: Ideb7270db3d6548eedd8337a3f596eb6f8fea6b1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2667514
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72686}
      c053419e
  21. 11 Feb, 2021 1 commit
    • Benedikt Meurer's avatar
      [stack-traces] Remove StackFrameInfo. · 11b6f176
      Benedikt Meurer authored
      For a long time, V8 had two distinct ways to capture and store a stack
      trace, one where we'd just collect and symbolize the information for the
      v8::StackTrace API (script id, name, line and colum information mostly),
      and one where V8 would also memorize the closures, receivers, and
      optionally the parameters of the stack frame, which we use for
      Error.stack and the non-standard CallSite APIs. Those two were often out
      of sync and suffered from various different issues. Eventually they were
      refactored into a single captureStackTrace() bottleneck that would
      produce a FrameArray.
      
      This CL is a logical continuation of the refactorings. It repairs a
      regression where we'd compute the method name (as part of the
      cached StackFrameInfo) even if we don't need them (as is the case for
      the inspector and any other use of the v8::StackTrace API).
      
      Everytime a method was invoked on StackTraceFrame, it'd call into
      StackTraceFrame::GetInfo(), which would lazily setup the StackFrameInfo
      like this:
      
        1. Create a FrameArrayIterator and point it to the FrameArray at the
           index stored in the StackTraceFrame.
        2. Invoke FrameArrayIterator::Frame(), which copies the information
           from the FrameArray into a temporary JSStackFrame, AsmJsStackFrame
           or WasmStackFrame C++ object, and use the StackFrameBase virtual
           methods to transfer all information to a newly created
           StackFrameInfo object.
        3. Kill the link to the FrameArray and put a link to the
           StackFrameInfo object into the StackTraceFrame.
      
      This caching turned out to be extremely costly, since beyond other
      things, it'd always invoke JSStackFrame::GetMethodName(), which is
      extremely costly (the execution time is linear in the number of
      properties on the receiver and it's prototype chain). The cost was so
      high that several work-arounds had been added, which would avoid
      triggering the eager construction of the StackFrameInfo object (i.e.
      https://crrev.com/c/2080663, https://crrev.com/c/2550504 or
      https://crrev.com/c/2261736, but also https://crrev.com/c/1688927).
      
      This CL removes the StackFrameInfo caching completely, since neither the
      inspector nor Error.stack benefit from the caching at all. It's only the
      first part in a series of refactorings that will significantly reduce
      the complexity and overhead of the stack trace collection.
      
      Doc: https://bit.ly/2wkbuIy
      Bug: chromium:1057211, chromium:1077657, chromium:1069425, v8:8742
      Bug: chromium:1127391, chromium:1098530, chromium:981541
      Change-Id: I8edb8ff48b620eb3043ae51ab4ea27146ef0a5a2
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2689185
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72647}
      11b6f176
  22. 09 Feb, 2021 2 commits
  23. 04 Feb, 2021 1 commit
    • Jakob Gruber's avatar
      [literals] Add a dedicated regexp boilerplate type · e79b841b
      Jakob Gruber authored
      ... and mark it as never-serialized wrt turbofan serialization.
      
      Until this CL, the JSRegExp type was used as both for plain
      user-visible regexp objects, and for internal regexp boilerplate
      descriptions. Boilerplates are special: they are never exposed to the
      user, they are only referenced from the feedback vector, they are
      immutable.
      
      To clarify this distinction, this CL introduces a dedicated struct
      type RegExpBoilerplateDescription to hold the regexp boilerplate
      description.
      
      This makes Turbofan serialization simpler: boilerplates can be
      accessed through direct reads since they are immutable. TF has no
      special requirements on JSRegExp objects (it never reads into these
      objects) and thus serializing only the references as a JSObjectRef is
      fine.
      
      Bug: v8:7790
      Change-Id: I33b337fcfcf861a02bc6be6d0c6311d07cf05718
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2656257Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72522}
      e79b841b
  24. 01 Feb, 2021 1 commit
    • Peter Wong's avatar
      [torque] Port String.prototype.includes/indexOf and StringIndexOf · 5a2c53f9
      Peter Wong authored
      - Removed no longer used StringBuiltinAssembler methods (DispatchOnStringEncodings, PointerToStringDataAtIndex)
      - Removed no longer used Runtime functions (StringIncludes, StringIndexOf, StringIndexOfUnchecked).
      - Overall builtin code size is reduced (652 bytes on Mac x64.release build), builtin size breakdown:
      
      BEFORE
      ======
      TFS Builtin, StringIndexOf, 1092
      TFJ Builtin, StringPrototypeIncludes, 1784
      TFJ Builtin, StringPrototypeIndexOf, 1536
      Total = 4412
      
      AFTER
      =====
      TFC Builtin, StringIndexOf, 2036 (+944)
      TFJ Builtin, StringPrototypeIncludes, 1072 (-712)
      TFJ Builtin, StringPrototypeIndexOf, 652 (-884)
      Total = 3760 (-652)
      
      
      Bug: v8:8996
      Change-Id: I9a88c095e2097f7d570e58e744d6692dc524ddf4
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2660995
      Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72456}
      5a2c53f9
  25. 29 Jan, 2021 1 commit