1. 23 May, 2022 1 commit
  2. 27 Apr, 2022 1 commit
  3. 10 Mar, 2022 1 commit
    • Jakob Gruber's avatar
      Revert "[compiler] Don't remove OSR code cache if deoptimizing at out of loop" · 87f80671
      Jakob Gruber authored
      This reverts commit 190b5d95.
      
      Reason for revert: We should understand & fix regressions, see crbug.com/1304870#c9.
      
      Original change's description:
      > [compiler] Don't remove OSR code cache if deoptimizing at out of loop
      >
      > The main purpose of OSR compilation is fasten inner loop execution, the
      > OSR code cache is still correct for loop if optimizing at out of loop,
      > keep OSR code cache can reduce unnecessary slow bytecode execution with
      > feedback collection and avoid re-OSR compilation.
      > This CL can improve JetStream2 case navier-stokes by ~6%.
      >
      > Change-Id: I9518317fb922071b131cab5b56998a0fc198804a
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3494981
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Commit-Queue: Tao Pan <tao.pan@intel.com>
      > Cr-Commit-Position: refs/heads/main@{#79413}
      
      Bug: chromium:1304870
      Change-Id: I8791edc34b66ef9dd0b477d3e340e85b0617ef59
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3515732
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79435}
      87f80671
  4. 09 Mar, 2022 1 commit
  5. 24 Feb, 2022 1 commit
  6. 26 Apr, 2021 1 commit
  7. 02 Mar, 2021 1 commit
  8. 24 Feb, 2021 1 commit
  9. 23 Feb, 2021 1 commit
    • Georg Neis's avatar
      Eliminate AbstractBytecodeArray and its concrete subclasses · 736d3448
      Georg Neis authored
      AbstractBytecodeArray was introduced in order to let the bytecode
      array accessor work on either a Handle<BytecodeArray> or a serialized
      BytecodeArrayRef. We have since implemented direct heap access for
      bytecode arrays, so we can now remove the abstraction again.
      
      Note that this means that as far as bytecode iteration is concerned
      we no longer access the bytecode array through the BytecodeArrayRef.
      I will remove the obsolete methods from that class in a follow-up CL.
      The downside is the loss of this explicit interface. The upside is
      simplicity and less code. We can justify the downside with the fact
      that the bytecode array data is immutable and thus the Ref indirection
      less meaningful than in other cases.
      
      Bug: v8:7790
      Change-Id: I0fe87b4efd0f77785f5a0917ab213c6031d9cc74
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707166Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72955}
      736d3448
  10. 11 Feb, 2021 1 commit
  11. 10 Feb, 2021 4 commits
  12. 10 Nov, 2020 1 commit
  13. 13 Sep, 2019 1 commit
  14. 27 Jun, 2019 1 commit
  15. 19 Jun, 2019 1 commit
  16. 21 Nov, 2016 1 commit
  17. 14 Oct, 2016 1 commit
  18. 13 Sep, 2016 1 commit
  19. 15 Jul, 2016 1 commit
  20. 14 Jul, 2016 1 commit
  21. 13 Jul, 2016 1 commit
  22. 21 Jun, 2016 3 commits
  23. 21 Mar, 2016 1 commit
    • oth's avatar
      [interpreter] Add support for scalable operands. · 48d082af
      oth authored
      This change introduces wide prefix bytecodes to support wide (16-bit)
      and extra-wide (32-bit) operands. It retires the previous
      wide-bytecodes and reduces the number of operand types.
      
      Operands are now either scalable or fixed size. Scalable operands
      increase in width when a bytecode is prefixed with wide or extra-wide.
      
      The bytecode handler table is extended to 256*3 entries. The
      first 256 entries are used for bytecodes with 8-bit operands,
      the second 256 entries are used for bytecodes with operands that
      scale to 16-bits, and the third group of 256 entries are used for
      bytecodes with operands that scale to 32-bits.
      
      LOG=N
      BUG=v8:4747,v8:4280
      
      Review URL: https://codereview.chromium.org/1783483002
      
      Cr-Commit-Position: refs/heads/master@{#34955}
      48d082af
  24. 11 Feb, 2016 3 commits
  25. 28 Jan, 2016 1 commit
    • rmcilroy's avatar
      [Interpreter] Add option to trace bytecode execution. · 6399fce5
      rmcilroy authored
      Adds --trace-ignition flag which allows tracing of bytecodes as they
      execute. As well as printing out the bytecode, this also prints out the
      input and output registers to each operation. The generated output looks
      as follows:
      
       -> 0x350cb46d5264 (139) : 49 fc fb 03 07    Call r4, r5, #3, [7]
            [ accumulator -> 0x177fba00bc99 <JS Array[2]> ]
            [          r4 -> 0x350cb46ce099 <JS Function InstallFunctions (SharedFunctionInfo 0x350cb46470c1)> ]
            [          r5 -> 0x350cb46cddc1 <an Object with map 0x35fdf590a3a9> ]
            [          r6 -> 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
            [          r7 -> 2 ]
            [ accumulator <- 0x350cb4604189 <undefined> ]
       -> 0x350cb46d5978 (47) : 4b f8 00 00 00    CallRuntime [248], r0, #0
            [ accumulator -> 0x350cb4604189 <undefined> ]
            [ accumulator <- 0x350cb4604189 <undefined> ]
       -> 0x350cb46d597d (52) : 23 09             Ldar a0
            [ accumulator -> 0x350cb4604189 <undefined> ]
            [          a0 -> 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
            [ accumulator <- 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
       -> 0x350cb46d597f (54) : 24 fd             Star r3
            [ accumulator -> 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
            [ accumulator <- 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
            [          r3 <- 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
      
      Also adds support for --print_source and --print-ast to the interpreter.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1640213002
      
      Cr-Commit-Position: refs/heads/master@{#33594}
      6399fce5
  26. 18 Dec, 2015 1 commit
    • rmcilroy's avatar
      [Interpreter] Generate valid FrameStates in the Bytecode Graph Builder. · 32211800
      rmcilroy authored
      Adds FrameState nodes to graphs built by the Bytecode Graph Builder, in
      preparation for adding deopt support. Also adds a new
      FrameStateType::kInterpretedFunction to allow for specialized deopt
      stack translation for interpreted frames. Finally adds support for
      disabling typed lowering of binary ops, since the current approach
      relies on a FrameState hack which does not apply to interpreted frames
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1514413002
      
      Cr-Commit-Position: refs/heads/master@{#32964}
      32211800
  27. 16 Dec, 2015 1 commit
  28. 02 Oct, 2015 5 commits
    • rmcilroy's avatar
      [Interpreter] Add CallRuntime support to the interpreter. · 75f6ad74
      rmcilroy authored
      Adds support for calling runtime functions from the interpreter. Adds the
      CallRuntime bytecode which takes a Runtime::FunctionId of the function to call
      and the arguments in sequential registers. Adds a InterpreterCEntry builtin
      to enable the interpreter to enter C++ code based on the functionId.
      
      Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall
      and groups all the interpreter builtins together.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1362383002
      
      Cr-Commit-Position: refs/heads/master@{#31089}
      75f6ad74
    • rmcilroy's avatar
      Revert of [Interpreter] Add CallRuntime support to the interpreter. (patchset... · b4a2f656
      rmcilroy authored
      Revert of [Interpreter] Add CallRuntime support to the interpreter. (patchset #8 id:220001 of https://codereview.chromium.org/1362383002/ )
      
      Reason for revert:
      Now breaking arm32 debug bot (worked locally even with --debug-code, so I'll need to figure out what's different on the bot)
      
      Original issue's description:
      > [Interpreter] Add CallRuntime support to the interpreter.
      >
      > Adds support for calling runtime functions from the interpreter. Adds the
      > CallRuntime bytecode which takes a Runtime::FunctionId of the function to call
      > and the arguments in sequential registers. Adds a InterpreterCEntry builtin
      > to enable the interpreter to enter C++ code based on the functionId.
      >
      > Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall
      > and groups all the interpreter builtins together.
      >
      > BUG=v8:4280
      > LOG=N
      >
      
      TBR=bmeurer@chromium.org,oth@chromium.org,mstarzinger@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4280
      
      Review URL: https://codereview.chromium.org/1379933003
      
      Cr-Commit-Position: refs/heads/master@{#31078}
      b4a2f656
    • rmcilroy's avatar
      [Interpreter] Add CallRuntime support to the interpreter. · c991d8f3
      rmcilroy authored
      Adds support for calling runtime functions from the interpreter. Adds the
      CallRuntime bytecode which takes a Runtime::FunctionId of the function to call
      and the arguments in sequential registers. Adds a InterpreterCEntry builtin
      to enable the interpreter to enter C++ code based on the functionId.
      
      Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall
      and groups all the interpreter builtins together.
      
      BUG=v8:4280
      LOG=N
      
      Committed: https://crrev.com/40e8424b744f8b6e3e1d93e20f23487419911dfc
      Cr-Commit-Position: refs/heads/master@{#31064}
      
      Review URL: https://codereview.chromium.org/1362383002
      
      Cr-Commit-Position: refs/heads/master@{#31076}
      c991d8f3
    • rmcilroy's avatar
      Revert of [Interpreter] Add CallRuntime support to the interpreter. (patchset... · 90f69d16
      rmcilroy authored
      Revert of [Interpreter] Add CallRuntime support to the interpreter. (patchset #6 id:180001 of https://codereview.chromium.org/1362383002/ )
      
      Reason for revert:
      Broke Arm64 bot (CEntry stub is trying to pop arguments off stack when argv_in_reg, so I need to fix this).
      
      Original issue's description:
      > [Interpreter] Add CallRuntime support to the interpreter.
      >
      > Adds support for calling runtime functions from the interpreter. Adds the
      > CallRuntime bytecode which takes a Runtime::FunctionId of the function to call
      > and the arguments in sequential registers. Adds a InterpreterCEntry builtin
      > to enable the interpreter to enter C++ code based on the functionId.
      >
      > Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall
      > and groups all the interpreter builtins together.
      >
      > BUG=v8:4280
      > LOG=N
      >
      > Committed: https://crrev.com/40e8424b744f8b6e3e1d93e20f23487419911dfc
      > Cr-Commit-Position: refs/heads/master@{#31064}
      
      TBR=bmeurer@chromium.org,oth@chromium.org,mstarzinger@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4280
      
      Review URL: https://codereview.chromium.org/1387543002
      
      Cr-Commit-Position: refs/heads/master@{#31066}
      90f69d16
    • rmcilroy's avatar
      [Interpreter] Add CallRuntime support to the interpreter. · 40e8424b
      rmcilroy authored
      Adds support for calling runtime functions from the interpreter. Adds the
      CallRuntime bytecode which takes a Runtime::FunctionId of the function to call
      and the arguments in sequential registers. Adds a InterpreterCEntry builtin
      to enable the interpreter to enter C++ code based on the functionId.
      
      Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall
      and groups all the interpreter builtins together.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1362383002
      
      Cr-Commit-Position: refs/heads/master@{#31064}
      40e8424b
  29. 01 Oct, 2015 1 commit
    • rmcilroy's avatar
      [Interpreter] Add support for short (16 bit) operands. · 03369ed2
      rmcilroy authored
      Adds support for short operands, starting with kIdx16. Introduces
      BytecodeTraits to enable compile time determination of various traits for a
      bytecode, such as size, operands, etc. Reworks BytecodeIterator,
      BytecodeArrayBuilder and Bytecodes::Decode to support 16 bit operands. Adds
      support to Interpreter to load 16 bit operands.
      
      Also fixes a bug with ToBoolean where it wouldn't get emitted at the start
      of a block, and added a test.
      
      BytecodeTraits template magic inspired by oth@chromium.org.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1370893002
      
      Cr-Commit-Position: refs/heads/master@{#31058}
      03369ed2