1. 15 Nov, 2021 1 commit
  2. 20 Oct, 2021 1 commit
  3. 13 Oct, 2021 1 commit
  4. 12 Oct, 2021 2 commits
  5. 27 Sep, 2021 1 commit
  6. 24 Jun, 2021 3 commits
  7. 14 Oct, 2020 1 commit
    • Martin Bidlingmaier's avatar
      [regexp] Use experimental engine if backtrack limit exceeded · d4febb6b
      Martin Bidlingmaier authored
      We fall back from irregexp to the experimental engine if a backtrack
      limit is exceeded and the experimental engine can handle the regexp.
      The feature can be turned on with a boolean flag, and an uint-valued
      flag controls the default backtrack limit.  For regexps that are
      constructed with an explicit backtrack limit (API,
      %NewRegExpWithBacktrackLimit), we choose the lower of the explicit and
      default backtrack limits.
      The default backtrack limit does not apply to regexps that can't be
      handled by the experimental engine, and for such regexps an explicitly
      specified backtrack limit is handled as before by returning null if we
      exceed it.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
      Bug: v8:10765
      Change-Id: I580df79bd847520985b6c2c2159bc427315c89d1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2436341
      Commit-Queue: Martin Bidlingmaier <mbid@google.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70500}
      d4febb6b
  8. 03 Jun, 2020 1 commit
  9. 21 Apr, 2020 1 commit
    • 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
  10. 03 Mar, 2020 1 commit
  11. 23 Oct, 2019 1 commit
  12. 02 Sep, 2019 1 commit
  13. 25 Jul, 2019 1 commit
    • Seth Brenith's avatar
      [regexp] Use stricter bounds check to avoid additional iteration · f42b1a5d
      Seth Brenith authored
      The motivating example is JetStream 2's UniPoker test, which tests
      whether a sorted string of Unicode playing cards contains a five-card
      straight using a regular expression. In the top-level generated loop for
      this RegExp, we see this loop exit condition:
      
      00000350000C2067    27  83fffe         cmpl rdi,0xfe
      00000350000C206A    2a  0f8da8e40000   jge 00000350000D0518  <+0xe4d8>
      
      Meaning if the current position is pointing at the very last (16-bit)
      character, then we exit the loop. Otherwise we go on and try to find
      various matches starting at the current position. However, we can see
      in the original expression that any possible match is at least 10
      characters (5 astral-plane Unicode values), so we're wasting a lot of
      time attempting to find matches in cases where we're too close to the
      end of the string for any match to succeed.
      
      This example might be a bit contrived, but I expect that an improvement
      in this bounds check would help a larger family of regular expressions,
      where the minimum match length is large relative to the string being
      matched and we don't meet the other necessary criteria for fast Boyer-
      Moore lookahead.
      
      To get the desired bounds check in this case, this patch does the
      following:
      1. Compute accurate EatsAtLeast values for every node during the
         analysis phase. This could end up doing more work than the current
         implementation, but analysis already has to touch every node, so it
         seems like a cache-friendly time to compute these values. In some
         cases, this might be less total work than the current implementation,
         because the current implementation might recompute the same node
         multiple times.
      2. When emitting a quick check, use the EatsAtLeast value from the
         predecessor ChoiceNode for the bounds check.
      
      This improves the UniPoker score on my machine by about 4%, because it
      cuts the time spent checking for straights roughly in half, and checking
      for straights originally accounted for about 8% of the total time.
      
      Bug: v8:9305
      Change-Id: I110b190c2578f73b2263259d5aa5750e921b01be
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1702125
      Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62919}
      f42b1a5d
  14. 28 May, 2019 1 commit
  15. 21 May, 2019 1 commit
  16. 02 Apr, 2019 1 commit
  17. 23 Jan, 2019 1 commit
  18. 17 Jan, 2019 1 commit
    • Clemens Hammacher's avatar
      Use forwarding constructors for MacroAssembler · edab9a20
      Clemens Hammacher authored
      and TurboAssembler. Instead of listing all the different combinations
      of arguments (which is one more now, temporarily), just forward all
      arguments down via MacroAssembler and TurboAssembler to
      TurboAssemblerBase.
      Interestingly, this requires more specific types sometimes (int instead
      of size_t), since further down the forwarding chain, the compiler does
      not recognize any more that the value is a constant, and emits a
      warning about a possibly truncating implicit conversion.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:8689, v8:8562
      Change-Id: Ifd13d2210ee64251c0075c0d9b68cacd5107d9ab
      Reviewed-on: https://chromium-review.googlesource.com/c/1414913Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58869}
      edab9a20
  19. 12 Nov, 2018 1 commit
  20. 13 Oct, 2017 1 commit
  21. 21 Apr, 2017 5 commits
  22. 27 Jan, 2016 1 commit
  23. 17 Nov, 2015 3 commits
  24. 30 Sep, 2015 1 commit
  25. 13 Aug, 2015 1 commit
  26. 12 Aug, 2015 1 commit
    • mstarzinger's avatar
      Remove inline header includes from non-inline headers (1). · 00a07bc1
      mstarzinger authored
      This tries to remove includes of "-inl.h" headers from normal ".h"
      headers, thereby reducing the chance of any cyclic dependencies and
      decreasing the average size of our compilation units.
      
      Note that this change still leaves 7 violations of that rule in the
      code. However there now is the "tools/check-inline-includes.sh" tool
      detecting such violations.
      
      R=bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/1283033003
      
      Cr-Commit-Position: refs/heads/master@{#30125}
      00a07bc1
  27. 23 Jan, 2015 1 commit
    • danno's avatar
      Remove the dependency of Zone on Isolate · c7b09aac
      danno authored
      Along the way:
      - Thread isolate parameter explicitly through code that used to
        rely on getting it from the zone.
      - Canonicalize the parameter position of isolate and zone for
        affected code
      - Change Hydrogen New<> instruction templates to automatically
        pass isolate
      
      R=mstarzinger@chromium.org
      LOG=N
      
      Review URL: https://codereview.chromium.org/868883002
      
      Cr-Commit-Position: refs/heads/master@{#26252}
      c7b09aac
  28. 10 Sep, 2014 1 commit
  29. 20 Jun, 2014 1 commit
  30. 03 Jun, 2014 1 commit
  31. 29 Apr, 2014 1 commit