1. 12 Aug, 2020 1 commit
  2. 11 Aug, 2020 3 commits
  3. 10 Aug, 2020 2 commits
    • Bill Budge's avatar
      Revert "[wasm-simd][arm] Use vmov to move all ones to register" · ff503fd4
      Bill Budge authored
      This reverts commit 57242a05.
      
      Reason for revert: regression tests fails:
      https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20debug/31477
      
      Original change's description:
      > [wasm-simd][arm] Use vmov to move all ones to register
      > 
      > vceq(dst, dst, dst) does not seem to always set the register to all
      > ones. The right way should be be to use vmov (immediate) anyway. This
      > was not supported in the assembler yet, so we need changes to the
      > assembler, diassembler, and simulator.
      > 
      > There is an unfortunate fork in logic in the simulator, due to the way
      > the switches are set up, vmov (imm) logic is duplicated across two
      > different cases, because the switch looks at the top bit of the
      > immediate. Refactoring this will be a bigger change that is irrelevant
      > for this bug, so I'm putting that off for now. Instead we extract the
      > core of vmov (imm) into helpers and call it in the two cases.
      > 
      > Bug: chromium:1112124
      > Change-Id: I283dbcd86cb0572e5ee720835f897b51fae96701
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2337503
      > Commit-Queue: Zhi An Ng <zhin@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Bill Budge <bbudge@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#69315}
      
      TBR=bbudge@chromium.org,jkummerow@chromium.org,v8-arm-ports@googlegroups.com,zhin@chromium.org
      
      Change-Id: I5d9d1dcb81771f71001d959ec5a03a43a11c4233
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:1112124
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2347211Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69316}
      ff503fd4
    • Ng Zhi An's avatar
      [wasm-simd][arm] Use vmov to move all ones to register · 57242a05
      Ng Zhi An authored
      vceq(dst, dst, dst) does not seem to always set the register to all
      ones. The right way should be be to use vmov (immediate) anyway. This
      was not supported in the assembler yet, so we need changes to the
      assembler, diassembler, and simulator.
      
      There is an unfortunate fork in logic in the simulator, due to the way
      the switches are set up, vmov (imm) logic is duplicated across two
      different cases, because the switch looks at the top bit of the
      immediate. Refactoring this will be a bigger change that is irrelevant
      for this bug, so I'm putting that off for now. Instead we extract the
      core of vmov (imm) into helpers and call it in the two cases.
      
      Bug: chromium:1112124
      Change-Id: I283dbcd86cb0572e5ee720835f897b51fae96701
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2337503
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69315}
      57242a05
  4. 07 Aug, 2020 1 commit
  5. 06 Aug, 2020 7 commits
  6. 05 Aug, 2020 2 commits
    • Mythri A's avatar
      [turboprop] Change heuristics for OSRing in TurboProp · bd9609a0
      Mythri A authored
      Change the heuristics for OSRing in TurboProp. Currently we OSR if
      a funciton is already optimized / marked for optimization but is still
      running optimized code. Since TurboProp optimizes much earlier than
      TurboFan using the same heuristics would cause us to OSR more often
      than required. This cl adds an additional check on the number of ticks
      to make sure the function is hot enough for OSRing.
      
      Bug: v8:9684
      Change-Id: I7a1c8229182a928fd85efb23e2d385413c5209ef
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339098
      Commit-Queue: Mythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69252}
      bd9609a0
    • Jakob Gruber's avatar
      [nci] Replace CompilationTarget with a new Code::Kind value · c51041f4
      Jakob Gruber authored
      With the new Turbofan variants (NCI and Turboprop), we need a way to
      distinguish between them both during and after compilation. We
      initially introduced CompilationTarget to track the variant during
      compilation, but decided to reuse the code kind as the canonical spot to
      store this information instead.
      
      Why? Because it is an established mechanism, already available in most
      of the necessary spots (inside the pipeline, on Code objects, in
      profiling traces).
      
      This CL removes CompilationTarget and adds a new
      NATIVE_CONTEXT_INDEPENDENT kind, plus helper functions to determine
      various things about a given code kind (e.g.: does this code kind
      deopt?).
      
      As a (very large) drive-by, refactor both Code::Kind and
      AbstractCode::Kind into a new CodeKind enum class.
      
      Bug: v8:8888
      Change-Id: Ie858b9a53311b0731630be35cf5cd108dee95b39
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2336793
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69244}
      c51041f4
  7. 03 Aug, 2020 2 commits
  8. 01 Aug, 2020 1 commit
    • Ulan Degenbaev's avatar
      [ukm] Rename v8::Context::Token to v8::metrics::Recorder::ContextId · 260ec995
      Ulan Degenbaev authored
      Chrome is currently adding a 128-bit V8ContextToken to keep track of
      V8 contexts across multiple isolates and processes. Having per-isolate
      token exposed by V8 leads to confusion of these two tokens.
      
      This moves v8::Context::Token to v8::metrics::Recorder and changes
      the corresponding functions:
      - v8::Context::GetToken => v8::metrics::Recorder::GetContextId
      - v8::Context::GetByToken => v8::metrics::Recorder::GetContext
      
      This CL is purely mechanical and does not change the behaviour.
      
      Bug: chromium:1101749
      Tbr: clemensb@chromium.org
      Change-Id: I31bbfa02ebab1c0d91b00f0d08c1b236392d14d2
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2330023
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarEmanuel Ziegler <ecmziegler@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69188}
      260ec995
  9. 31 Jul, 2020 2 commits
    • Santiago Aboy Solanes's avatar
      [codegen] Create PersistentHandles instead of DeferredHandles · 09db7cf9
      Santiago Aboy Solanes authored
      As a note, we are not yet passing this to the background so we only
      have canonical persistent handles on the main thread.
      
      Bug: v8:7790
      Change-Id: I15b264cfacc2d5524a3d13f62574a3576bb7e1a4
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2330017
      Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69176}
      09db7cf9
    • Dan Elphick's avatar
      [heap] Share RO_SPACE pages with pointer compression · c7d22c49
      Dan Elphick authored
      This allows the configuration v8_enable_shared_ro_heap and
      v8_enable_pointer_compression on Linux and Android, although it still
      defaults to off.
      
      When pointer compression and read-only heap sharing are enabled, sharing
      is achieved by allocating ReadOnlyPages in shared memory that are
      retained in the shared ReadOnlyArtifacts object. These ReadOnlyPages are
      then remapped into the address space of the Isolate ultimately using
      mremap.
      
      To simplify the creation process the ReadOnlySpace memory for the first
      Isolate is created as before without any sharing. It is only when the
      ReadOnlySpace memory has been finalized that the shared memory is
      allocated and has its contents copied into it. The original memory is
      then released (with PC this means it's just released back to the
      BoundedPageAllocator) and immediately re-allocated as a shared mapping.
      
      Because we would like to make v8_enable_shared_ro_heap default to true
      at some point but can't make this conditional on the value returned by
      a method in the code we are yet to compile, the code required for
      sharing has been mostly changed to use ifs with
      ReadOnlyHeap::IsReadOnlySpaceShared() instead of #ifdefs except where
      a compile error would result due to the absence of a class members
      without sharing. IsReadOnlySpaceShared() will evaluate
      CanAllocateSharedPages in the platform PageAllocator (with pointer
      compression and sharing enabled) once and cache that value so sharing
      cannot be toggled during the lifetime of the process.
      
      Bug: v8:10454
      Change-Id: I0236d752047ecce71bd64c159430517a712bc1e2
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2267300
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69174}
      c7d22c49
  10. 29 Jul, 2020 2 commits
    • Bill Budge's avatar
      Revert "[api] Add a SharedArrayBuffersEnabled callback." · 80396fd3
      Bill Budge authored
      This reverts commit 76b53b66.
      
      Reason for revert: Can't be used easily in embedder (Chromium).
      
      Original change's description:
      > [api] Add a SharedArrayBuffersEnabled callback.
      > 
      > - Adds a SharedArrayBuffersEnabled callback and uses it to
      >   enable/disable SABs per context. The feature flag is used
      >   if no callback is registered.
      > 
      > Bug: chromium:923807
      > Change-Id: I4d3472fcd79b158cb50dc98793aece6dbbb81d93
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2316901
      > Reviewed-by: Adam Klein <adamk@chromium.org>
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#69057}
      
      TBR=bbudge@chromium.org,adamk@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: chromium:923807
      Change-Id: I6e3ddfa9cd64ba3106b4a75ea7a5185f873facc9
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2326952Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69134}
      80396fd3
    • Jakob Gruber's avatar
      [nci] Update interrupt budget from NCI code · 980e224a
      Jakob Gruber authored
      This is the first step towards implementing a tier-up mechanism from
      NCI code to TF. We will follow the existing Ignition-to-Turbofan
      mechanics, which are, roughly:
      
      1. Track a bytecode interrupt budget.
      2. When exhausted, call the runtime profiler, which increments
         profiler ticks for the top frame's function.
      3. When a function should tier up, it is marked as such using the
         FeedbackVector::optimized_code_weak_or_smi slot / the
         OptimizationMarker mechanism.
      4. The InterpreterEntryTrampoline checks this slot and calls into
         runtime to compile if needed.
      5. The finished code is also placed into this slot, as well as
         installed on the JSFunction.
      6. Again, the IET checks the slot and tail-calls the code object if it
         exists.
      
      This CL implements step 1 for NCI code by inserting the new simplified
      UpdateInterruptBudget operator at the same spots (and using the same
      offsets) as Ignition. When the budget is exhausted, we call a runtime
      function that currently does nothing and will be implemented in the
      next CL.
      
      Bug: v8:8888
      Change-Id: I98c0f8d96f32d515218dc2a76f961d44fe281c86
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2312778
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69124}
      980e224a
  11. 28 Jul, 2020 6 commits
  12. 24 Jul, 2020 2 commits
  13. 23 Jul, 2020 2 commits
  14. 22 Jul, 2020 4 commits
  15. 21 Jul, 2020 2 commits
  16. 20 Jul, 2020 1 commit