1. 16 Nov, 2017 7 commits
  2. 15 Nov, 2017 24 commits
  3. 14 Nov, 2017 9 commits
    • Adam Klein's avatar
      [parser] Remove inlining of Parser::RewriteSpreads · 1abeb0ca
      Adam Klein authored
      Despite the V8_INLINE annotation, it was never actually inlined until
      18cac20c removed the NonPatternRewriter,
      causing all calls to Parser::RewriteNonPattern() to inline RewriteSpreads.
      
      This patch should recover the binary bloat in the attached bug while
      retaining the inlining of the rest of RewriteNonPattern, which in
      the common case does very little work (and doesn't call out to RewriteSpreads).
      
      Bug: chromium:784924
      Change-Id: I1c2062b41ceb51a9522d49bdb9353e1840393ca1
      Reviewed-on: https://chromium-review.googlesource.com/769442Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49370}
      1abeb0ca
    • Alexey Kozyatinskiy's avatar
      [inspector] use unordered_map for frames cache · 63fbef4e
      Alexey Kozyatinskiy authored
      Otherwise we can end up with performance regression with a lot of
      frames in cache. Map requires log(N) for lookup, unordered map for
      frames ids requires - ~O(1).
      
      R=dgozman@chromium.org
      
      Bug: v8:7078
      Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Iac1ff7e35daede8c5ebd424f686a8ef8dbae9061
      Reviewed-on: https://chromium-review.googlesource.com/767035
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarAlexei Filippov <alph@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49369}
      63fbef4e
    • Adam Klein's avatar
      [parser] RewritableExpressions should keep track of their Scope directly · 082009fc
      Adam Klein authored
      Previously, the Parser stored a Scope alongside a RewritableExpression
      for each potential destructuring assignment. This Scope was later used
      during rewriting to set the correct context for the rewriting. But this
      approach failed if a new Scope was inserted into the Scope chain between
      the time the assignment was parsed and when it was rewritten.
      
      By storing the Scope directly in RewritableExpression,
      ReparentExpressionScopes() is able to appropriately re-scope such
      expressions prior to their rewriting.
      
      Bug: chromium:779457
      Change-Id: Ieb429a3da841f76d5798610af59da4fccb000652
      Reviewed-on: https://chromium-review.googlesource.com/767666
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49368}
      082009fc
    • Leszek Swirski's avatar
      [compiler] Add new "no cache reason" enum values · 61e04e28
      Leszek Swirski authored
      Add enum values to the "no cache reason" API which reflect new types of
      no-cache reason we will want to distinguish.
      
      Also, renames one of the enum values (BecauseExtension ->
      BecauseV8Extension) because it was confusing. It's a V8-only type of no
      cache reason, so it shouldn't affect embedders.
      
      Bug: chromium:769203
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I41d4ecfb35b2e91b71562b4f23b15d20f16a943c
      Reviewed-on: https://chromium-review.googlesource.com/769010Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49367}
      61e04e28
    • Andreas Haas's avatar
      [platform] Return task runners as shared_ptr · 98c40a4b
      Andreas Haas authored
      At the moment, task runners are returned as unique_ptr. This is
      inconvenient, however. In all implementations I did, the platform holds
      a shared pointer of the task runner and wraps it in a wrapper class just
      to return it as a unique_ptr. With this CL the platform API is changed
      to return a shared_ptr directly.
      
      R=rmcilroy@chromium.org
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Ide278db855199ea239ad0ae14d97fd17349dac8c
      Reviewed-on: https://chromium-review.googlesource.com/768867
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49366}
      98c40a4b
    • Alexey Kozyatinskiy's avatar
      [inspector] perf test for inspector async instrumentation · 7345bfcc
      Alexey Kozyatinskiy authored
      Prior langing massive async instrumentation refactoring let's add a perf
      test to track our progress.
      
      R=dgozman@chromium.org
      
      Bug: v8:7078
      Change-Id: I11e1ec962a9f384c2c778061c48935ac410fbe53
      Reviewed-on: https://chromium-review.googlesource.com/766647Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49365}
      7345bfcc
    • Ross McIlroy's avatar
      [compiler] Add background compilation mode. · 9a4b334f
      Ross McIlroy authored
      Adds support for compiling top-level code on a background thread behind a flag.
      When the flag is enabled, any background-parsing-task will perform compilation
      as well as parsing.
      
      BUG=v8:5203
      TBR=marja@chromium.org,mstarzinger@chromium.org
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Icf90ac7211298d3555515dafc7c3245618ec1304
      Reviewed-on: https://chromium-review.googlesource.com/764048
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49364}
      9a4b334f
    • Bill Budge's avatar
      Reland "[Memory] Use OS::Allocate for all OS memory allocations." · adc52af5
      Bill Budge authored
      This is a reland of 4899bcb6
      This is a reland of b73ee334
      
      Original change's description:
      > [Memory] Use OS::Allocate for all OS memory allocations.
      >
      > - Eliminates OS::ReserveRegion and OS::ReserveAlignedRegion.
      > - Changes OS::Allocate to take alignment parameter, reorders parameters
      >   to match page_allocator.
      > - Since the size of memory allocation can be deduced, don't return the
      >   amount of memory allocated.
      > - Changes reservation of aligned address space. Before we would reserve
      >   (size + alignment) rounded up to page size. This is too much, because
      >   maximum misalignment is (alignment - page_size).
      > - On Windows and Cygwin, we release an oversize allocation and
      >   immediately retry at the aligned address in the allocation. If we
      >   lose the address due to a race, we just retry.
      > - Clean up all the calls to OS::Allocate in codegen and tests by adding
      >   helper AllocateSystemPage function (allocation.h) and
      >   AllocateAssemblerBuffer (cctest.h).
      > - Changes 'assm' to 'masm' in some targets for consistency when using
      >   a macro-assembler.
      >
      > - Eliminates OS::ReleaseRegion, replacing with calls to OS::Free.
      > - Adds bool return value to OS::Free.
      > - Cleans up types of flags, protection on Windows and Cygwin.
      
      > Bug: chromium:756050
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I306dbe042cc867670fdc935abca29db074b0da71
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Iad3c025334e8f8d7d647be99a36a11ee449c9087
      Reviewed-on: https://chromium-review.googlesource.com/767014
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49363}
      adc52af5
    • Jakob Gruber's avatar
      Revert "Revert lazy bytecode handler support" · e0400694
      Jakob Gruber authored
      This reverts commit 9e4543a2.
      
      Reason for revert: Culprit CL was found, let's reland this.
      
      Original change's description:
      > Revert lazy bytecode handler support
      >
      > Speculative revert due to canary crashes. I'll begin relanding these
      > one-by-one next week.
      >
      > This bundles two reverts:
      >
      > Revert "[snapshot] Lazy-deserialize bytecode handlers"
      > This reverts commit b4587369.
      >
      > Revert "[interpreter] Remove mechanism for bytecode handler reuse"
      > This reverts commit 07fc87a2.
      >
      > TBR: rmcilroy@chromium.org,mlippautz@chromium.org,yangguo@chromium.org
      > Bug: chromium:783708
      > Change-Id: I6f8314b9eeafd9412a1c69843bc242e7da240eee
      > Reviewed-on: https://chromium-review.googlesource.com/763428
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#49294}
      
      TBR=rmcilroy@chromium.org,mlippautz@chromium.org,yangguo@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: chromium:783708
      Change-Id: I6c9274ddf0d0832ecce32baacc4f6a1388f56ac4
      Reviewed-on: https://chromium-review.googlesource.com/768749
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49362}
      e0400694