1. 24 Jul, 2017 8 commits
    • Peter Marshall's avatar
      [builtins] Increase the maximum string length on 64-bit platforms. · e8c9649e
      Peter Marshall authored
      Increase from 2^28 - 16 to 2^30 - 25 for 64-bit platforms.
      
      Bug: v8:6148
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I3529d7ed757a7ab49a001af8641cf888db171cdb
      Reviewed-on: https://chromium-review.googlesource.com/570047Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46838}
      e8c9649e
    • jgruber's avatar
      [regexp] Teach deoptimizer to materialize JSRegExp objects · d8e14775
      jgruber authored
      Now that literal allocation is inlined, it is possible to optimize out regexp
      literal allocation completely. If a lazy deopt is triggered in that situation,
      the deoptimizer needs to know how to materialize regexp objects.
      
      Bug: v8:6605,v8:6556,chromium:747825
      Change-Id: Id491053f8e64fec16540efbfdc6c7c524da3e080
      Reviewed-on: https://chromium-review.googlesource.com/582609Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46837}
      d8e14775
    • Michael Starzinger's avatar
      [turbofan] Handle exceptional edges in ReduceArrayForEach. · d07365f9
      Michael Starzinger authored
      This adds handling for exceptional control projections when lowering
      calls to {Array.prototype.forEach} in the call reducer.
      
      R=jarin@chromium.org
      TEST=mjsunit/optimized-foreach
      BUG=v8:1956
      
      Change-Id: I282048b203814cbc1c90df983879578b210f92fb
      Reviewed-on: https://chromium-review.googlesource.com/574542
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46834}
      d07365f9
    • Yang Guo's avatar
      Revert "Introduce HASH_TABLE_TYPE instance type." · f4867154
      Yang Guo authored
      This reverts commit 990dd947.
      
      Reason for revert: <INSERT REASONING HERE>
      
      Original change's description:
      > Introduce HASH_TABLE_TYPE instance type.
      > 
      > This is so that we can distinguish hash tables by instance type. We can
      > then introduce maps for each kind of hash tables to further distinguish.
      > 
      > R=​mstarzinger@chromium.org
      > 
      > Bug: v8:6593
      > Change-Id: I1a532884758e571abdfe2e2743fc5ea611d12f7e
      > Reviewed-on: https://chromium-review.googlesource.com/581009
      > Commit-Queue: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46828}
      
      TBR=yangguo@chromium.org,mstarzinger@chromium.org
      
      Change-Id: Ia47d408e5cf47983940227b4cc445a704d7f8d19
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6593
      Reviewed-on: https://chromium-review.googlesource.com/581493Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46833}
      f4867154
    • Benedikt Meurer's avatar
      [turbofan] Add IC support for Call/ConstructWithSpread. · 5ee1b7ad
      Benedikt Meurer authored
      Properly hook up the (existing) IC slots for the CallWithSpread and
      ConstructWithSpread bytecodes, and change the interpreter to collect
      feedback (call counts and regular target function feedback) for those.
      There's no integration with the Array constructor yet, since that
      requires some yak shaving to thread through the AllocationSite to the
      Array constructor stub. Once we have a solution for that, we can also
      remove the current code duplication in the Call/Construct IC logic.
      
      Also properly hook up the newly available feedback in TurboFan. This
      will fix not only the missing target feedback, but more importantly
      the tear-up decisions for optimization are correct now in the presence
      of spread calls, and even more importantly the inlining heurstic has
      proper call frequencies for those.
      
      Some follow-up changes will be necessary to make sure we use the
      feedback even for corner cases that aren't handled properly yet. Also
      we should consider collecting feedback about the map of the spread
      at some point to be able to always inline the spread calls.
      
      Bug: v8:6399, v8:6527, v8:6630
      Change-Id: I818dbcb411fd3951d8e9d31f5d7e794f8d60fa00
      Reviewed-on: https://chromium-review.googlesource.com/582647Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46832}
      5ee1b7ad
    • Igor Sheludko's avatar
      [runtime] Don't track "class" field types for arrays with properties. · 21e7f083
      Igor Sheludko authored
      ... in order to avoid the need to update field types through elements
      kind transitions.
      
      Bug: chromium:738763, chromium:745844
      Change-Id: I9f0e7f321e7f44ab5b36c06dd4c5633611370807
      Reviewed-on: https://chromium-review.googlesource.com/581647Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46830}
      21e7f083
    • Yang Guo's avatar
      Introduce HASH_TABLE_TYPE instance type. · 990dd947
      Yang Guo authored
      This is so that we can distinguish hash tables by instance type. We can
      then introduce maps for each kind of hash tables to further distinguish.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:6593
      Change-Id: I1a532884758e571abdfe2e2743fc5ea611d12f7e
      Reviewed-on: https://chromium-review.googlesource.com/581009
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46828}
      990dd947
    • Igor Sheludko's avatar
      Revert "Reland "[runtime] Add shortcuts for elements kinds transitions."" · 5520cae3
      Igor Sheludko authored
      This reverts commit 6e27386d.
      
      Reason for revert: There will be another much simpler and
      back-mergeable fix.
      
      Original change's description:
      > Reland "[runtime] Add shortcuts for elements kinds transitions."
      > 
      > This is a reland of b90e83f5
      > Original change's description:
      > > [runtime] Add shortcuts for elements kinds transitions.
      > >
      > > The shortcuts ensure that field type generalization is properly
      > > propagated in the transition graph.
      > >
      > > Bug: chromium:738763
      > > Change-Id: Id701a6f95ed6ea093c707fbe0bac228f1f856e9f
      > > Reviewed-on: https://chromium-review.googlesource.com/567992
      > > Commit-Queue: Igor Sheludko <ishell@chromium.org>
      > > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#46622}
      > 
      > Bug: chromium:738763, chromium:742346, chromium:742381, chromium:745844
      > Change-Id: I93974e3906b2c7710bd525f15037a2dd97f263ad
      > Reviewed-on: https://chromium-review.googlesource.com/575227
      > Commit-Queue: Igor Sheludko <ishell@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46759}
      
      TBR=ulan@chromium.org,jkummerow@chromium.org,ishell@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: chromium:738763, chromium:742346, chromium:742381, chromium:745844
      Change-Id: I203dc748c47db554e0a86d61f0e2b7b8b96f2370
      Reviewed-on: https://chromium-review.googlesource.com/581547
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46826}
      5520cae3
  2. 21 Jul, 2017 3 commits
    • Caitlin Potter's avatar
      [interpreter] refactor BuildGeneratorSuspend/Resume into BuildSuspendPoint · 00681326
      Caitlin Potter authored
      Simplify the model for generating Awaits, because the resume point is
      always immediately following the suspend point, and registers used are
      always the same for both operations.
      
      Includes a minor refactoring of BytecodeGenerator::VisitYield() to
      perform iterator result creation before the SuspendGenerator bytecode,
      rather than between SuspendGenerator and Return. This adds a small
      number of bytecodes for each yield.
      
      BUG=v8:2355, v8:5855
      
      Change-Id: I4868b89a6bc1b251f887d2a45890c8fa19f7b089
      Reviewed-on: https://chromium-review.googlesource.com/576286Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Caitlin Potter <caitp@igalia.com>
      Cr-Commit-Position: refs/heads/master@{#46820}
      00681326
    • Ross McIlroy's avatar
      Revert "[Turbofan] Merged the OSR phase into the graph building phase." · 5d0a4327
      Ross McIlroy authored
      This reverts commit 69c8f16d.
      
      Reason for revert: Causing crashes on Clusterfuzz - http://crbug.com/747154
      
      BUG=chromium:747154
      
      Original change's description:
      > [Turbofan] Merged the OSR phase into the graph building phase.
      > 
      > Now the OSR phase is only used when OSRing from the ast graph builder.
      > When OSRing from Turbofan, the implementation is now in the graph
      > building phase, at the beginning of the VisitBytecode function.
      > We are no longer generating any OSRLoopEntry or OSRNormalEntry nodes,
      > nor nodes for the possible code of the OSRed function which is before
      > the OSRed loops.
      > 
      > The trimming and reducing of the OSR phase is not done either. This
      > change in the way the way the OSR is done enabled to remove the
      > workaround to the bug mentioned below.
      > 
      > Bug: v8:6112
      > Bug: v8:6518
      > Change-Id: I1c9231810b923486d55ea618d550d981d695d797
      > Reviewed-on: https://chromium-review.googlesource.com/543042
      > Commit-Queue: Alexandre Talon <alexandret@google.com>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46801}
      
      TBR=rmcilroy@chromium.org,mstarzinger@chromium.org,leszeks@chromium.org,alexandret@google.com
      
      Change-Id: Ifa9bf5d86e888a47cad7fb10446b36fda5029604
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6112, v8:6518
      Reviewed-on: https://chromium-review.googlesource.com/581288Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46817}
      5d0a4327
    • Ross McIlroy's avatar
      [Compiler] Remove SharedFunctionInfo from ParseInfo. · c179400b
      Ross McIlroy authored
      Removes the SharedFunctionInfo field from the ParseInfo structure. Instead
      require a SharedFunctionInfo to be explicitly passed to ParseFunction.
      Also renames GetUnoptimizedCode to CompileUnoptimizedFunction to make it
      clear it should only be called for non-top-level code.
      
      BUG=v8:5203
      
      Change-Id: Ibce016e6a5290c3685f7f0a2f5fb1eb2df2ffc3b
      Reviewed-on: https://chromium-review.googlesource.com/574589
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46814}
      c179400b
  3. 20 Jul, 2017 15 commits
  4. 19 Jul, 2017 14 commits