1. 07 Apr, 2021 1 commit
  2. 25 Mar, 2021 1 commit
    • Patrick Thier's avatar
      Reland "Reland "[sparkplug][deoptimizer] Deoptimize to baseline."" · e438ae2d
      Patrick Thier authored
      This is a reland of e3ccb538
      
      No changes for the reland.
      This CL was speculatively reverted, but was not the cause of the problem.
      
      TBR=jgruber@chromium.org
      
      Original change's description:
      > Reland "[sparkplug][deoptimizer] Deoptimize to baseline."
      >
      > This is a reland of bdcd7d79
      >
      > Handle lazy deopts when the current bytecode is JumpLoop.
      > Instead of advancing to the next bytecode, re-execute the JumpLoop.
      >
      > TBR=jgruber@chromium.org, neis@chromium.org
      >
      > Original change's description:
      > > [sparkplug][deoptimizer] Deoptimize to baseline.
      > >
      > > If we have baseline code, deoptimize to baseline instead of the
      > > interpreter. The process is similar to deopting to the interpreter.
      > > We just use different builtins
      > > (BaselineEnterAtBytecode/BaselineEnterAtNextBytecode) instead of
      > > InterpreterEnterBytecodeDispatch/InterpreterEnterBytecodeAdvance, that
      > > patch an interpreter frame to a baseline frame and continue execution in
      > > baseline code (based on the deopt type, at the current or next
      > > bytecode).
      > >
      > > Bug: v8:11420
      > > Change-Id: Iabaefb36c05155a435c7b380906a86d9b9d549fa
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2695591
      > > Commit-Queue: Patrick Thier <pthier@chromium.org>
      > > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > > Reviewed-by: Georg Neis <neis@chromium.org>
      > > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#73609}
      >
      > Bug: v8:11420
      > Change-Id: Ib8cac028121188ddc23ff29377760ed684eb7392
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783035
      > Reviewed-by: Patrick Thier <pthier@chromium.org>
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Commit-Queue: Patrick Thier <pthier@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73636}
      
      Bug: v8:11420
      Change-Id: I7fbbb73a4fdaeab8b294862ee6ae952928c57994
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784695
      Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Auto-Submit: Patrick Thier <pthier@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73656}
      e438ae2d
  3. 24 Mar, 2021 3 commits
    • Deepti Gandluri's avatar
      Revert "Reland "[sparkplug][deoptimizer] Deoptimize to baseline."" · ebc9f39f
      Deepti Gandluri authored
      This reverts commit e3ccb538.
      
      Reason for revert: Speculative revert for ARM 64 CFI fails - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20CFI/5174?
      
      Original change's description:
      > Reland "[sparkplug][deoptimizer] Deoptimize to baseline."
      >
      > This is a reland of bdcd7d79
      >
      > Handle lazy deopts when the current bytecode is JumpLoop.
      > Instead of advancing to the next bytecode, re-execute the JumpLoop.
      >
      > TBR=jgruber@chromium.org, neis@chromium.org
      >
      > Original change's description:
      > > [sparkplug][deoptimizer] Deoptimize to baseline.
      > >
      > > If we have baseline code, deoptimize to baseline instead of the
      > > interpreter. The process is similar to deopting to the interpreter.
      > > We just use different builtins
      > > (BaselineEnterAtBytecode/BaselineEnterAtNextBytecode) instead of
      > > InterpreterEnterBytecodeDispatch/InterpreterEnterBytecodeAdvance, that
      > > patch an interpreter frame to a baseline frame and continue execution in
      > > baseline code (based on the deopt type, at the current or next
      > > bytecode).
      > >
      > > Bug: v8:11420
      > > Change-Id: Iabaefb36c05155a435c7b380906a86d9b9d549fa
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2695591
      > > Commit-Queue: Patrick Thier <pthier@chromium.org>
      > > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > > Reviewed-by: Georg Neis <neis@chromium.org>
      > > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#73609}
      >
      > Bug: v8:11420
      > Change-Id: Ib8cac028121188ddc23ff29377760ed684eb7392
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783035
      > Reviewed-by: Patrick Thier <pthier@chromium.org>
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Commit-Queue: Patrick Thier <pthier@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73636}
      
      Bug: v8:11420
      Change-Id: Icd797b4979a114a2a627e12c8bb7d2215df03182
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2785074Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
      Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73643}
      ebc9f39f
    • Patrick Thier's avatar
      Reland "[sparkplug][deoptimizer] Deoptimize to baseline." · e3ccb538
      Patrick Thier authored
      This is a reland of bdcd7d79
      
      Handle lazy deopts when the current bytecode is JumpLoop.
      Instead of advancing to the next bytecode, re-execute the JumpLoop.
      
      TBR=jgruber@chromium.org, neis@chromium.org
      
      Original change's description:
      > [sparkplug][deoptimizer] Deoptimize to baseline.
      >
      > If we have baseline code, deoptimize to baseline instead of the
      > interpreter. The process is similar to deopting to the interpreter.
      > We just use different builtins
      > (BaselineEnterAtBytecode/BaselineEnterAtNextBytecode) instead of
      > InterpreterEnterBytecodeDispatch/InterpreterEnterBytecodeAdvance, that
      > patch an interpreter frame to a baseline frame and continue execution in
      > baseline code (based on the deopt type, at the current or next
      > bytecode).
      >
      > Bug: v8:11420
      > Change-Id: Iabaefb36c05155a435c7b380906a86d9b9d549fa
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2695591
      > Commit-Queue: Patrick Thier <pthier@chromium.org>
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73609}
      
      Bug: v8:11420
      Change-Id: Ib8cac028121188ddc23ff29377760ed684eb7392
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783035Reviewed-by: 's avatarPatrick Thier <pthier@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Patrick Thier <pthier@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73636}
      e3ccb538
    • Sathya Gunasekaran's avatar
      Revert "[sparkplug][deoptimizer] Deoptimize to baseline." · 6fc861e4
      Sathya Gunasekaran authored
      This reverts commit bdcd7d79.
      
      Reason for revert: 
      https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Blink%20Linux%20Future/7996/blamelist
      
      Original change's description:
      > [sparkplug][deoptimizer] Deoptimize to baseline.
      >
      > If we have baseline code, deoptimize to baseline instead of the
      > interpreter. The process is similar to deopting to the interpreter.
      > We just use different builtins
      > (BaselineEnterAtBytecode/BaselineEnterAtNextBytecode) instead of
      > InterpreterEnterBytecodeDispatch/InterpreterEnterBytecodeAdvance, that
      > patch an interpreter frame to a baseline frame and continue execution in
      > baseline code (based on the deopt type, at the current or next
      > bytecode).
      >
      > Bug: v8:11420
      > Change-Id: Iabaefb36c05155a435c7b380906a86d9b9d549fa
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2695591
      > Commit-Queue: Patrick Thier <pthier@chromium.org>
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73609}
      
      Bug: v8:11420
      Change-Id: Ie8b936df343b9194c0a6e50e0c44b67c0d9a012d
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783030
      Auto-Submit: Sathya Gunasekaran  <gsathya@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@{#73621}
      6fc861e4
  4. 23 Mar, 2021 1 commit
  5. 17 Mar, 2021 3 commits
  6. 15 Mar, 2021 2 commits
  7. 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
  8. 09 Mar, 2021 1 commit
    • pthier's avatar
      Reland "[sparkplug] Change bytecode offset mapping and introduce iterator." · 2966c896
      pthier authored
      This is a reland of a8b61ef5
      
      The main reason for the revert was not related to this CL and was fixed
      with https://crrev.com/c/2739646
      In addition debug output in d8.test.verifySourcePositions was removed
      due to TSAN complaints.
      
      Original change's description:
      > [sparkplug] Change bytecode offset mapping and introduce iterator.
      >
      > Previously, we recorded pairs of (bytecode offset, sparkplug pc) to
      > create a mapping of bytecode offset <-> sparkplug pc.
      > These pairs were only recorded after builtin/runtime calls.
      > In preparation for deoptimizing to Sparkplug, we need a more precise
      > mapping.
      > With this CL, we record positions for every bytecode. Instead of storing
      > a pair of (bytecode offset, sparkplug pc), we store only the pc,
      > calculating the bytecode offset from the index in the mapping table.
      > For easier use an iterator to access the mapping is introduced.
      >
      > Drive-by: Reduce sampling interval in cpu-profiler cctest to get rid of
      flaky failures.
      >
      > Bug: v8:11420, v8:11429
      > Change-Id: I36a9171f43a574eb67880cbca6cf9ff7ab291e60
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2720189
      > Reviewed-by: Victor Gomes <victorgomes@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Auto-Submit: Patrick Thier <pthier@chromium.org>
      > Commit-Queue: Patrick Thier <pthier@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73186}
      >
      > Change-Id: I9ab4cb60da002ef130f8a21ad10ba69e2826a7b6
      
      Change-Id: I9ab4cb60da002ef130f8a21ad10ba69e2826a7b6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2745335Reviewed-by: 's avatarVictor Gomes <victorgomes@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Commit-Queue: Patrick Thier <pthier@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73293}
      2966c896
  9. 05 Mar, 2021 2 commits
    • Bill Budge's avatar
      Reland "[codegen][frames] Generalize argument padding slot code" · d2ab64eb
      Bill Budge authored
      This is a (manual) reland of ba87518e071a75fb951b490d3f75a87ca715cc23
      
      It is unchanged, except to rebase around a merge conflict.
      TBR=neis@chromium.org, jgruber@chromium.org
      
      Bug: v8:9198
      
      > [codegen][frames] Generalize argument padding slot code
      >
      > - Removes kPadArguments boolean.
      > - Changes ShouldPadArguments to ArgumentPaddingSlots to reflect
      >   that on some architectures more than 1 padding slot may be needed.
      > - Adds AddArgumentPaddingSlots and ShouldPadArguments convenience
      >   functions.
      >
      > Bug: v8:9198
      >
      > Change-Id: Iba87518e071a75fb951b490d3f75a87ca715cc23
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2679109
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#72605}
      
      Change-Id: I2a9022964d3bafe68c5c1e7de0ae7e837dd5c2e3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2740457Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73241}
      d2ab64eb
    • Clemens Backes's avatar
      [no-wasm] Remove wasm engine from isolate · c87b273c
      Clemens Backes authored
      This removes the {wasm_engine_} field from the isolate if
      v8_enable_webassembly=false. This avoids any includes from src/wasm in
      isolate.{h,cc}.
      Unconditional access to the wasm engine in other parts are also #if'ed
      out to avoid nullptr accesses.
      Long-term, the {Isolate::wasm_engine()} method will be fully removed,
      but this can only be done once src/wasm is excluded from compilation.
      
      R=jkummerow@chromium.org, petermarshall@chromium.org
      
      Bug: v8:11238
      Change-Id: Ie3738884ec17ccc0a3027b91a2415c2c633ca774
      Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737298Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73230}
      c87b273c
  10. 04 Mar, 2021 2 commits
    • Maya Lekova's avatar
      Revert "[sparkplug] Change bytecode offset mapping and introduce iterator." · 6fa780ff
      Maya Lekova authored
      This reverts commit a8b61ef5.
      
      Reason for revert: Looks like it breaks GC stress bot - https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/35880/overview
      
      Original change's description:
      > [sparkplug] Change bytecode offset mapping and introduce iterator.
      >
      > Previously, we recorded pairs of (bytecode offset, sparkplug pc) to
      > create a mapping of bytecode offset <-> sparkplug pc.
      > These pairs were only recorded after builtin/runtime calls.
      > In preparation for deoptimizing to Sparkplug, we need a more precise
      > mapping.
      > With this CL, we record positions for every bytecode. Instead of storing
      > a pair of (bytecode offset, sparkplug pc), we store only the pc,
      > calculating the bytecode offset from the index in the mapping table.
      > For easier use an iterator to access the mapping is introduced.
      >
      > Drive-by: Reduce sampling interval in cpu-profiler cctest to get rid of
      > flaky failures.
      >
      > Bug: v8:11420, v8:11429
      > Change-Id: I36a9171f43a574eb67880cbca6cf9ff7ab291e60
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2720189
      > Reviewed-by: Victor Gomes <victorgomes@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Auto-Submit: Patrick Thier <pthier@chromium.org>
      > Commit-Queue: Patrick Thier <pthier@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73186}
      
      Bug: v8:11420
      Bug: v8:11429
      Change-Id: Ie71e7ce234e7b9ab9a2ec99a983e9900f35baa44
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2735397
      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@{#73187}
      6fa780ff
    • pthier's avatar
      [sparkplug] Change bytecode offset mapping and introduce iterator. · a8b61ef5
      pthier authored
      Previously, we recorded pairs of (bytecode offset, sparkplug pc) to
      create a mapping of bytecode offset <-> sparkplug pc.
      These pairs were only recorded after builtin/runtime calls.
      In preparation for deoptimizing to Sparkplug, we need a more precise
      mapping.
      With this CL, we record positions for every bytecode. Instead of storing
      a pair of (bytecode offset, sparkplug pc), we store only the pc,
      calculating the bytecode offset from the index in the mapping table.
      For easier use an iterator to access the mapping is introduced.
      
      Drive-by: Reduce sampling interval in cpu-profiler cctest to get rid of
      flaky failures.
      
      Bug: v8:11420, v8:11429
      Change-Id: I36a9171f43a574eb67880cbca6cf9ff7ab291e60
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2720189Reviewed-by: 's avatarVictor Gomes <victorgomes@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Auto-Submit: Patrick Thier <pthier@chromium.org>
      Commit-Queue: Patrick Thier <pthier@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73186}
      a8b61ef5
  11. 01 Mar, 2021 1 commit
  12. 23 Feb, 2021 1 commit
  13. 22 Feb, 2021 2 commits
  14. 15 Feb, 2021 2 commits
  15. 12 Feb, 2021 2 commits
  16. 09 Feb, 2021 1 commit
  17. 05 Feb, 2021 1 commit
    • Paolo Severini's avatar
      [compiler] Re-reland "Faster JS-to-Wasm calls" · 831fa62b
      Paolo Severini authored
      This is a reland of 6ada6a90
      
      - Fixed a GC issue
        https://bugs.chromium.org/p/v8/issues/detail?id=11335:
        GC expected all arguments on the stack from code with
        CodeKind::TURBOFAN to be tagged objects. This is not the case now with
        inlined Wasm calls, and this information can be passed in
        SafepointEntry for each call site.
      
      - Disabled JS-to-Wasm inlining for calls inside try/catch.
      
      For more details, see updated doc:
      https://docs.google.com/document/d/1mXxYnYN77tK-R1JOVo6tFG3jNpMzfueQN1Zp5h3r9aM/edit#
      
      Bug: v8:11092
      
      
      Original change's description:
      > Reland "Faster JS-to-Wasm calls"
      >
      > This is a reland of 860fcb1b
      >
      > - Disabled the tests for this feature in V8-lite mode (the original
      > change broke V8-lite tests).
      > - Also modified test console-profile-wasm.js that was brittle with this
      > change because it assumed that there was always a JS-to-Wasm wrapper
      > but this is not the case when the TurboFan compilation completes before
      > the Liftoff-compiled code starts to run.
      >
      > More changes in Patchset 8:
      >
      > - Moved inlining of the "JSToWasm Wrapper" away from simplified-lowering,
      > into a new phase, wasm-inlining that reuses the JSInliner reducer.
      > The doc
      > https://docs.google.com/document/d/1mXxYnYN77tK-R1JOVo6tFG3jNpMzfueQN1Zp5h3r9aM/edit#
      > describes the new logic.
      >
      > - Fixed a couple of small issues in wasm_compiler.cc to make sure that
      > the graph "JSToWasm Wrapper" subgraph has a valid Control chain;
      > this should solve the problem we had inlining the calls in functions
      > that can throw exception.
      
      
      Original change's description:
      > Faster JS-to-Wasm calls
      >
      > This replaces https://chromium-review.googlesource.com/c/v8/v8/+/2376165/.
      >
      > Currently JS-to-Wasm calls go through a wrapper/trampoline, built on
      > the basis of the signature of a Wasm function to call, and whose task
      > is to:
      > - set "thread_in_wasm_flag" to true
      > - convert the arguments from tagged types into Wasm native types
      > - calculate the address of the Wasm function to call and call it
      > - convert back the result from Wasm native types into tagged types
      > - reset "thread_in_wasm_flag" to false.
      >
      > This CL tries to improve the performance of JS-to-Wasm calls by
      > inlining the code of the JS-to-Wasm wrappers in the call site.
      >
      > It introduces a new IR operand, JSWasmCall, which replaces JSCall for
      > this kind of calls. A 'JSWasmCall' node is associated to
      > WasmCallParameters, which contain information about the signature of
      > the Wasm function to call.
      >
      > WasmWrapperGraphBuilder::BuildJSToWasmWrapper is modified to avoid
      > generating code to convert the types for the arguments
      > of the Wasm function, when the conversion is not necessary.
      > The actual inlining of the graph generated for this wrapper happens in
      > the simplified-lowering phase.
      >
      > A new builtin, JSToWasmLazyDeoptContinuation, is introduced to manage
      > lazy deoptimizations that can happen if the Wasm function callee calls
      > back some JS code that invalidates the compiled JS caller function.
      >
      
      Bug: v8:11092
      Cq-Include-Trybots: luci.v8.try:v8_linux_arm_lite_rel_ng
      Change-Id: Ie052634598754feab4ff36d10fd04e008b5227a5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2649777
      Commit-Queue: Paolo Severini <paolosev@microsoft.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72541}
      831fa62b
  18. 29 Jan, 2021 1 commit
  19. 28 Jan, 2021 1 commit
    • Clemens Backes's avatar
      [frame] Remove redundant unchecked_code implementations · d1e6dcd9
      Clemens Backes authored
      1) Wasm code is not associated with a Code object, hence
         WasmFrame::unchecked_code will always return a null object. Hence we
         can use the default implementation from TypedFrame and avoid the
         lookup on the heap which will always fail.
      2) InternalFrame inherits from TypedFrame, hence can also reuse the
         unchecked_code implementation from TypedFrame.
      3) Use "{}" instead of "Code()" to return "nothing".
      
      R=jkummerow@chromium.org
      
      Bug: v8:11074
      Change-Id: I142d2f21c05bf87cafa5ba6e7f463510be6c70bb
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2653229Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72410}
      d1e6dcd9
  20. 25 Jan, 2021 1 commit
  21. 21 Jan, 2021 1 commit
  22. 20 Jan, 2021 3 commits
  23. 18 Jan, 2021 1 commit
  24. 17 Dec, 2020 1 commit
  25. 01 Dec, 2020 1 commit
  26. 20 Nov, 2020 1 commit