1. 06 Jul, 2022 1 commit
  2. 05 Jul, 2022 3 commits
  3. 30 Jun, 2022 1 commit
  4. 27 Jun, 2022 1 commit
  5. 17 Jun, 2022 1 commit
  6. 09 Jun, 2022 1 commit
  7. 21 May, 2022 1 commit
  8. 16 May, 2022 2 commits
  9. 13 May, 2022 2 commits
    • Clemens Backes's avatar
      [base] Introduce FormattedString · fa8c5950
      Clemens Backes authored
      This introduces a class which can be used for formatting dynamic values
      into a constant-size, stack-allocated array. You get ostream-style code
      but printf-style performance, and in particular no dynamic allocation.
      This makes this class also suitable to be used in OOM or other fatal
      situations where we cannot rely on dynamic memory allocation to still
      work.
      
      Using FormattedString will automatically compute the format string
      depending on the types. It also computes the maximum size of the output.
      Last but not least, it makes the code a lot more readable than
      traditional printf style printing.
      
      R=mlippautz@chromium.org
      
      Bug: chromium:1323177
      Change-Id: I47228b3603c694c1fa23516dd3f1c57e39c0ca35
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644622
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#80529}
      fa8c5950
    • Clemens Backes's avatar
      Replace STATIC_ASSERT with static_assert · dd74a023
      Clemens Backes authored
      Now that we require C++17 support, we can just use the standard
      static_assert without message, instead of our STATIC_ASSERT macro.
      
      R=leszeks@chromium.org
      
      Bug: v8:12425
      Change-Id: I1d4e39c310b533bcd3a4af33d027827e6c083afe
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647353Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#80524}
      dd74a023
  10. 10 May, 2022 1 commit
  11. 05 May, 2022 1 commit
  12. 03 May, 2022 1 commit
  13. 29 Apr, 2022 1 commit
  14. 28 Apr, 2022 3 commits
  15. 27 Apr, 2022 1 commit
  16. 26 Apr, 2022 2 commits
  17. 25 Apr, 2022 2 commits
  18. 22 Apr, 2022 4 commits
  19. 20 Apr, 2022 2 commits
    • Benoît Lizé's avatar
      Reland "[builtins] Remap builtins on Linux" · 8d186bb4
      Benoît Lizé authored
      Reason for reland: Fixed Fuchsia build.
      
      Original change's description:
      > [builtins] Remap builtins on Linux
      >
      > This is a CL similar to
      > https://chromium-review.googlesource.com/c/v8/v8/+/3553006, but on Linux
      > rather than macOS. The goal is to allow builtins to use short builtin
      > calls without paying a memory cost, by remapping rather than copying
      > them.
      >
      > However, while macOS has a system call making this easier, on Linux we
      > don't have one on most kernels. There is the recently-introduced
      > mremap(MREMAP_DONTUNMMAP), which is available in 5.7, but only works on
      > anonymous mappings until 5.13, which is too recent for most Android
      > devices.
      >
      > Instead, we open() the file containing the builtins, and mmap() it at
      > the desired location.
      >
      > Change-Id: I4524f349948b8f48c4536cf392a1cd179662a6cc
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3570426
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Reviewed-by: Jakob Linke <jgruber@chromium.org>
      > Commit-Queue: Benoit Lize <lizeb@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#80022}
      
      Change-Id: I0cc8cf510bd2cb8621130bea8406d79aa209948c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596164Reviewed-by: 's avatarJakob Linke <jgruber@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Benoit Lize <lizeb@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#80049}
      8d186bb4
    • Victor Gomes's avatar
      [base] Lazily ensure ThreadList invariant · b127c341
      Victor Gomes authored
      Since next() comes from ThreadedListTraits, the users of this class
      can modify the list by modifying the next pointer. This however breaks
      the invariant that `tail_` points to the last element of the list.
      
      We ensure this invariant lazily. This should be _almost_ no effect
      for users that do not manually modify the next pointer.
      
      Change-Id: If46283ab4fc5036a81f353b25823b0fd39b3e232
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578803Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Victor Gomes <victorgomes@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#80042}
      b127c341
  20. 19 Apr, 2022 3 commits
  21. 12 Apr, 2022 1 commit
    • Victor Gomes's avatar
      [maglev] Remove unnecessary CheckedSmiTag and CheckedSmiUntag · e96b8564
      Victor Gomes authored
      We track untagged values through the InterpreterFrameState, that allows
      us to re-use already emitted CheckedSmiUntag and elide CheckedSmiTag
      whenever the next node wants the untagged value as input.
      
      It uses LoadRegisterTaggedValue, LoadRegisterSmiUntaggedValue and
      accumulator variants as helper in the graph builder.
      
      Spilled values can now be untagged, since we currently do not
      support stack slot re-use, we use a ZoneVector to keep track of
      the stack slot representation.
      
      We tag (lazily) any value that will be passed as input to a Phi node.
      
      Bug: v8:7700
      
      Change-Id: I34cb69c8f1fbeb6a8158a251a4dd2e114e894ea0
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3574559Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Victor Gomes <victorgomes@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79939}
      e96b8564
  22. 11 Apr, 2022 1 commit
    • Jakob Gruber's avatar
      Reland "[osr] Add an install-by-offset mechanism" · b8473c52
      Jakob Gruber authored
      This is a reland of commit 51b99213
      
      Fixed in reland:
      - bytecode_age was incorrectly still accessed as an int8 (instead
        of int16).
      - age and osr state were incorrectly reset on ia32 (16-bit write
        instead of 32-bit).
      
      Original change's description:
      > [osr] Add an install-by-offset mechanism
      >
      > .. for concurrent OSR. There, the challenge is to hit the correct
      > JumpLoop bytecode once compilation completes, since execution has
      > moved on in the meantime.
      >
      > This CL adds a new mechanism to request installation at a specific
      > bytecode offset. We add a new `osr_install_target` field to the
      > BytecodeArray:
      >
      >   bitfield struct OSRUrgencyAndInstallTarget extends uint16 {
      >     osr_urgency: uint32: 3 bit;
      >     osr_install_target: uint32: 13 bit;
      >   }
      >
      >   // [...]
      >   osr_urgency_and_install_target: OSRUrgencyAndInstallTarget;
      >   bytecode_age: uint16;  // Only 3 bits used.
      >   // [...]
      >
      > Note urgency and install target are packed into one 16 bit field,
      > we can thus merge both checks into one comparison within JumpLoop.
      > Note also that these fields are adjacent to the bytecode age; we
      > still reset both OSR state and age with a single (now 32-bit)
      > store.
      >
      > The install target is the lowest 13 bits of the bytecode offset.
      > When set, every reached JumpLoop will check `is this my offset?`,
      > and if yes, jump into runtime to tier up.
      >
      > Drive-by: Rename BaselineAssembler::LoadByteField to LoadWord8Field.
      >
      > Bug: v8:12161
      > Change-Id: I275d468b19df3a4816392a2fec0713a8d211ef80
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3571812
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Commit-Queue: Jakob Linke <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79853}
      
      Bug: v8:12161
      Change-Id: I7c59b2a2aacb1d7d40fdf39396ec9d8d48b0b9ac
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578543Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Jakob Linke <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79911}
      b8473c52
  23. 08 Apr, 2022 1 commit
  24. 07 Apr, 2022 2 commits
  25. 06 Apr, 2022 1 commit