1. 21 Apr, 2020 13 commits
    • Leszek Swirski's avatar
      [offthread] Refactor out an OffThreadHeap · b814c1d5
      Leszek Swirski authored
      Refactors out the allocation and space merging parts of OffThreadFactory
      into a new OffThreadHeap class. This allows a separation of concerns
      between allocating/merging and initializing, and future-proofs the
      factory code against off-thread allocation implementation changes (e.g.
      LocalHeap).
      
      Bug: chromium:1011762
      Change-Id: I876906dbfd50f8aafe56af2e63e5fe35e4f7f8e9
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2157369
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67270}
      b814c1d5
    • Jakob Gruber's avatar
      [snapshot] Dedicated files for snapshot data · b39ee29d
      Jakob Gruber authored
      The intent of this work is to create a clean interface header file for
      the snapshot component. As a first step, move SerializedData and
      SnapshotData into their own dedicated files.
      
      Bug: v8:10416
      Change-Id: I95af08508555a2ec3c2364094b81a76e3e6bb38a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144117
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67269}
      b39ee29d
    • Jakob Gruber's avatar
      [regexp] Consistent expectations for output registers · fe609139
      Jakob Gruber authored
      ... between the interpreter and generated code.
      
      Prior to this CL, pre- and post conditions on the output register
      array differed between the interpreter and generated code.
      
      Interpreter
      Pre: `output` fits captures and temporary registers.
      Post: None.
      
      Generated code
      Pre:  `output` fits capture registers.
      Post: `output` is modified if and only if the match succeeded.
      
      This CL changes the interpreter to match generated code pre- and
      post conditions by allocating space for temporary registers inside
      the interpreter.
      
      Drive-by: Add MaxRegisterCount, RegistersForCaptureCount helpers.
      
      Bug: chromium:1067270
      Change-Id: I2900ef2f31207d817ec7ead3e0e2215b23b398f0
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2135642
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67268}
      fe609139
    • Thibaud Michaud's avatar
      [wasm] Fix background global handle destruction · 3a83b134
      Thibaud Michaud authored
      Destroy the weak script handle from a custom finalizer, to ensure that
      this is done from the main thread.
      
      R=clemensb@chromium.org
      
      Bug: v8:10417
      Change-Id: I76a27c4a6db5ef4d189febcf9d0f81f9fd6c220d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2151347Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67267}
      3a83b134
    • Sathya Gunasekaran's avatar
      Revert "Reland^3 "[parser] Introduce UnoptimizedCompileFlags"" · a709f779
      Sathya Gunasekaran authored
      This reverts commit 313d4844.
      
      Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20gcc/6354
      
      Original change's description:
      > Reland^3 "[parser] Introduce UnoptimizedCompileFlags"
      > 
      > This is a reland of 0a59e0cb
      > which was a reland of 146f5375
      > which was a reland of d91679bf
      > 
      > Initializes the BackgroundCompileTasks's language_mode in the
      > constructor (previously only initialized after successful parse) in case
      > the parse failed. We still need to reset it after parse in case the
      > language mode changed (because we encountered "use strict").
      > 
      > Original change's description:
      > > [parser] Introduce UnoptimizedCompileFlags
      > >
      > > UnoptimizedCompileFlags defines the input flags shared between parse and
      > > compile (currently parse-only). It is set initially with some values, and
      > > is immutable after being passed to ParseInfo (ParseInfo still has getters
      > > for the fields, but no setters).
      > >
      > > Since a few of the existing flags were output flags, ParseInfo now has a
      > > new output_flags field, which will eventually migrate to a ParseOutputs
      > > structure.
      > >
      > > Bug: v8:10314
      > > Change-Id: If3890a5fad883bca80a97bf9dfe44d91797dc286
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2096580
      > > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Reviewed-by: Simon Zünd <szuend@chromium.org>
      > > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#66782}
      > 
      > TBR=ulan@chromium.org,szuend@chromium.org,rmcilroy@chromium.org
      > 
      > Bug: v8:10314
      > Change-Id: Ieee0bbfade4fe0b56de03bff47a7364959608d6a
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2157367
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67265}
      
      TBR=leszeks@chromium.org
      
      Change-Id: I90ac035caa76d4c4baf5ce207247d1ce5169fb2f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:10314
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2157370Reviewed-by: 's avatarSathya Gunasekaran  <gsathya@chromium.org>
      Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67266}
      a709f779
    • Leszek Swirski's avatar
      Reland^3 "[parser] Introduce UnoptimizedCompileFlags" · 313d4844
      Leszek Swirski authored
      This is a reland of 0a59e0cb
      which was a reland of 146f5375
      which was a reland of d91679bf
      
      Initializes the BackgroundCompileTasks's language_mode in the
      constructor (previously only initialized after successful parse) in case
      the parse failed. We still need to reset it after parse in case the
      language mode changed (because we encountered "use strict").
      
      Original change's description:
      > [parser] Introduce UnoptimizedCompileFlags
      >
      > UnoptimizedCompileFlags defines the input flags shared between parse and
      > compile (currently parse-only). It is set initially with some values, and
      > is immutable after being passed to ParseInfo (ParseInfo still has getters
      > for the fields, but no setters).
      >
      > Since a few of the existing flags were output flags, ParseInfo now has a
      > new output_flags field, which will eventually migrate to a ParseOutputs
      > structure.
      >
      > Bug: v8:10314
      > Change-Id: If3890a5fad883bca80a97bf9dfe44d91797dc286
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2096580
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Simon Zünd <szuend@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#66782}
      
      TBR=ulan@chromium.org,szuend@chromium.org,rmcilroy@chromium.org
      
      Bug: v8:10314
      Change-Id: Ieee0bbfade4fe0b56de03bff47a7364959608d6a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2157367Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67265}
      313d4844
    • Frank Tang's avatar
      Correct typo of Chinese locale zn_CN to zh_CN · b3a8c113
      Frank Tang authored
      Bug: chromium:1051186, chromium:1064326
      Change-Id: Ied8d264ac3a40635f13ce09b2009135eaeb0118b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2158485Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Commit-Queue: Frank Tang <ftang@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67264}
      b3a8c113
    • Georg Neis's avatar
      Reland "[turbofan] Fix bug in Number.Min/Max typings" · 898b8915
      Georg Neis authored
      This reverts commit f442b03f.
      
      Reason for reland: Wrongly reverted.
      
      Original change's description:
      > Revert "[turbofan] Fix bug in Number.Min/Max typings"
      > 
      > This reverts commit 4158af83.
      > 
      > Reason for revert: causing UBSAN failures:
      > 
      > https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/10729?
      > 
      > 
      > Original change's description:
      > > [turbofan] Fix bug in Number.Min/Max typings
      > > 
      > > They try to be very precise about when the result can be -0,
      > > but do so incorrectly. I'm changing the code to just do the
      > > simple thing instead. Let's see how that affects performance.
      > > 
      > > Bug: chromium:1072171
      > > Change-Id: I9737a84aa19d06685af5b7bca541e348dc37cca8
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2157028
      > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > > Commit-Queue: Georg Neis <neis@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#67246}
      > 
      > TBR=neis@chromium.org,tebbi@chromium.org
      > 
      > Change-Id: I0d9b312e27f5a8bbbebeccdc9819fa94f10af139
      > No-Presubmit: true
      > No-Tree-Checks: true
      > No-Try: true
      > Bug: chromium:1072171
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2157646
      > Reviewed-by: Francis McCabe <fgm@chromium.org>
      > Commit-Queue: Francis McCabe <fgm@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67249}
      
      TBR=neis@chromium.org,tebbi@chromium.org,fgm@chromium.org
      
      Change-Id: Ida36ca584a5af5da887189328c8da195b26285d4
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:1072171
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2157368Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67263}
      898b8915
    • Iain Ireland's avatar
      [regexp] Factor out PreprocessRegExp · 58ac66b7
      Iain Ireland authored
      RegExpImpl::Compile does a number of transformations that require
      directly manipulating the internal representation of the regexp. For
      example, when matching a (non-sticky, non-anchored) regular
      expression, the pattern must be wrapped in .* so that it can match
      anywhere in the input.
      
      In the interest of moving towards a cleaner division between irregexp
      and the outside world, it makes sense to move this code into
      RegExpCompiler.
      
      R=jgruber@chromium.org
      
      Bug: v8:10406
      Change-Id: I6da251c91c0016914a51480f80bb46c337fd0b23
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2140246Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67262}
      58ac66b7
    • Jakob Gruber's avatar
      Reland "[protectors] Add use counters to track invalidations" · 6d392516
      Jakob Gruber authored
      This is a reland of 52412058
      
      Original change's description:
      > [protectors] Add use counters to track invalidations
      > 
      > ... to make real world protector invalidations measurable.
      > 
      > Chromium CL: https://crrev.com/c/2149324
      > 
      > Drive-by: Add missing newline in protector tracing.
      > Drive-by: Consistent naming for the regexp species protector.
      > 
      > Bug: v8:9496
      > Change-Id: I3c7238aa8024e03ea9e89daf83345b8ec4f0d768
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2149428
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67149}
      
      Bug: v8:9496
      Change-Id: I3c97bfa747e8429569eaa09ea909de73fc377efa
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2151363Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67261}
      6d392516
    • Iain Ireland's avatar
      [regexp] Hoist LoadCurrentCharacterImpl · 4536bb2e
      Iain Ireland authored
      LoadCurrentCharacterImpl is implemented once in each of the eight
      regexp-macro-assembler-<arch>.cc files. Aside from small differences
      in comment wording, those eight implementations are identical. The
      architecture-specific code for LoadCurrentCharacter is all in
      LoadCurrentCharacterUnchecked.
      
      This patch hoists the definition of LoadCurrentCharacterImpl into
      NativeRegExpMacroAssembler and turns LoadCurrentCharacterUnchecked
      into a virtual function.
      
      Note: The arm64 version of LoadCurrentCharacterImpl contained the
      following six-year-old comment, which I don't think is worth
      preserving:
      
      // TODO(pielan): Make sure long strings are caught before this, and
      // not just asserted in debug mode.
      
      R=jgruber@chromium.org
      
      Bug: v8:10406
      Change-Id: Ic81283ad3b618d6b06f4206fb77d30de617dccb7
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2140003
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67260}
      4536bb2e
    • Yu Yin's avatar
      [mips64][wasm-simd][liftoff] Support S128. · ec362684
      Yu Yin authored
      Port several CLs recorded in bug 9909.
      We test this on 3A4000, and find many issues in MSA implement, but they are not related with this patch, will fix in another CL.
      Looks like there is no 32-bit os for 3a4000, so we do not implements s128 for mips32.
      
      Bug: v8:9909
      Change-Id: Iad7569ebb92904bae66d420c8306cde24afb034a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2147575
      Commit-Queue: Yu Yin <xwafish@gmail.com>
      Reviewed-by: 's avatarZhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67259}
      ec362684
    • jing.bao's avatar
      [wasm-simd] [liftoff] Implement ne on x64 and ia32 · 6f7b4c7f
      jing.bao authored
      Bug: v8:9909
      Change-Id: I11a07dcfe3362e8476ecf361f7de1c5047a34d7c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2154330Reviewed-by: 's avatarZhi An Ng <zhin@chromium.org>
      Commit-Queue: Jing Bao <jing.bao@intel.com>
      Cr-Commit-Position: refs/heads/master@{#67258}
      6f7b4c7f
  2. 20 Apr, 2020 27 commits