1. 09 Jun, 2017 26 commits
  2. 08 Jun, 2017 14 commits
    • bjaideep's avatar
      PPC/s390: Inline Array.prototype.forEach in TurboFan · 0732cbee
      bjaideep authored
      Port 90c3a2d5
      
      Original Commit Message:
      
          This CL contains a few pieces:
      
          - A new mechanism to create "BuiltinContinuation" checkpoints in TurboFan
            graphs, which--when triggered--swizzle the values in the the FrameState to be
            parameters to a typically TF-generated builtin that resumes execution to finish
            the slow-case functionality.
          - Continuation builtins that have special handling in the deoptimizer and their own
            new frame type to ensure that the values they need to begin executing can be stashed
            away and restored immediately before the builtin is called via a trampoline that runs
            when the continuation builtin's frame execution resumes.
          - An implementation of Array.prototype.forEach in TurboFan that can be used to
            inline it. The inlined forEach implementation uses the checkpoints mechanism
            described above to deopt in the middle of the forEach in the cases that optimization
            invariants are violated. There is a slightly different continuation stub for each
            deopt point in the forEach implementation to ensure the correct side-effects, i.e.
            that the deopt of the builtin isn't programmatically observable.
      
      R=danno@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2926043005
      Cr-Commit-Position: refs/heads/master@{#45798}
      0732cbee
    • machenbach's avatar
      Revert of [heap] Use larger marking steps during external allocation pressure... · 195eab46
      machenbach authored
      Revert of [heap] Use larger marking steps during external allocation pressure (patchset #4 id:60001 of https://codereview.chromium.org/2927553003/ )
      
      Reason for revert:
      Blocks the roll. Fails some layout tests:
      https://build.chromium.org/p/tryserver.v8/builders/v8_linux_blink_rel/builds/21757
      
      STDERR: # Fatal error in ../../v8/src/heap/heap.cc, line 957
      STDERR: # Check failed: 1.0 <= pressure (1 vs. -0.00503761).
      
      Original issue's description:
      > [heap] Use larger marking steps during external allocation pressure
      >
      > BUG=chromium:626082, chromium:728228
      >
      > Review-Url: https://codereview.chromium.org/2927553003
      > Cr-Commit-Position: refs/heads/master@{#45784}
      > Committed: https://chromium.googlesource.com/v8/v8/+/8d75644fc0ce1cee5d6eca42006f4c4aa89e9b86
      
      TBR=ulan@chromium.org,hpayer@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:626082, chromium:728228
      
      Review-Url: https://codereview.chromium.org/2925333002
      Cr-Commit-Position: refs/heads/master@{#45797}
      195eab46
    • bjaideep's avatar
      PPC/s390: [debug] Untangle DebugInfo from break point support · 39e42b5e
      bjaideep authored
      Port d3371c23
      
      Original Commit Message:
      
          DebugInfo was very closely tied to break point support:
          * It contained only information relevant to break points.
          * It was created and freed by break point implementation.
          * Existence of a DebugInfo on the shared function info implied existence of
            break points.
      
          This CL is a step towards making DebugInfo usable by other debugging
          functionality such as block coverage by decoupling it from break point support,
          which is now only one kind of information stored on the DebugInfo object.
      
      R=jgruber@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:6000
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2927813004
      Cr-Commit-Position: refs/heads/master@{#45796}
      39e42b5e
    • bbudge's avatar
      [WASM] Eliminate SIMD boolean vector types. · 381f7da0
      bbudge authored
      - Eliminates b1x4, b1x8, and b1x16 as distinct WASM types.
      - All vector comparisons return v128 type.
      - Eliminates b1xN and, or, xor, not.
      - Selects take a v128 mask vector and are now bit-wise.
      - Adds a new test for Select, where mask is non-canonical (not 0's and -1's).
      
      LOG=N
      BUG=v8:6020
      
      Review-Url: https://codereview.chromium.org/2919203002
      Cr-Commit-Position: refs/heads/master@{#45795}
      381f7da0
    • bmeurer's avatar
      [builtins] Start refactoring the Apply builtin. · af76779a
      bmeurer authored
      This splits the monolithic Apply builtin into several smaller builtins,
      namely CallVargargs and ConstructVarargs, which accept a length and a
      FixedArray of elements and deal with the actual stack manipulation, and
      CallWithArrayLike / ConstructWithArrayLike that deal with getting the
      elements from the receiver (for Function.prototype.apply, Reflect.apply
      and Reflect.construct), which can now be written using the CSA.
      
      The idea is that these builtins can be reused by TurboFan directly in
      the future when we optimize apply better, and that we can also reuse the
      core logic in the handling of spread calls/constructs.
      
      R=petermarshall@chromium.org
      BUG=v8:4587,v8:5269
      
      Review-Url: https://codereview.chromium.org/2930623002
      Cr-Commit-Position: refs/heads/master@{#45794}
      af76779a
    • sampsong's avatar
      PPC/s390: [compiler] Delay allocation of code-embedded heap numbers. · ae947e26
      sampsong authored
      Port 659e8f7b
      
      Original Commit Message:
      
          Instead of allocating and embedding certain heap numbers into the code
          during code assembly, emit dummies but record the allocation requests.
          Later then, in Assembler::GetCode, allocate the heap numbers and patch
          the code by replacing the dummies with the actual objects. The
          RelocInfos for the embedded objects are already recorded correctly when
          emitting the dummies.
      
      R=neis@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:6048
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2929843002
      Cr-Commit-Position: refs/heads/master@{#45793}
      ae947e26
    • Ulan Degenbaev's avatar
      [heap] Fix premature unmapping of new space pages. · e34f8021
      Ulan Degenbaev authored
      concurrent sweeping is disabled, which is not correct.
      
      MemoryAllocator: :CanFreeMemoryChunk returns true for the case when
      Change-Id: I560bac0275473445b52fba28b5e647b54f523a3a
      Reviewed-on: https://chromium-review.googlesource.com/528081Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45792}
      e34f8021
    • kschimpf's avatar
      Localize counter class member functions. · f073a20b
      kschimpf authored
      This CL takes advantage of the fact that StatsCounter is now local to
      the Counters class. This includes:
      
      1) Method StatsTable::SetCreateHistogramFunction() was only called in
      one spot (in api.cc), which also called Counters::ResetHistograms()
      and Counters::InitializeHistorgram(). InitializeHistogram can be
      folded into Histogram.Reset().
      
      2) Since Histogram::Reset() now regenerats the histogram, we no longer
      need the field lookup_done_. Therefore there is no longer a race
      between updating ptr_ and lookup_done_, making the Histogram class
      thread safe.
      
      3) Made the constructors of several classes private (except for class
      Counters), minimizing the scope that they are used. When the couldn't
      be moved, add comment that they were public only for test cases.
      
      4) Removed the need for a mutex lock on StatsCounter::Reset(), since
      it is now guaranteed to only be called when
      StatsTable::SetCounterFunction() is called.
      
      BUG=v8:6361
      CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng
      
      Review-Url: https://codereview.chromium.org/2918703002
      Cr-Commit-Position: refs/heads/master@{#45791}
      f073a20b
    • Toon Verwaest's avatar
      [builtins] Make sure to perform ToPrimitive(key, hint string) in... · fe048410
      Toon Verwaest authored
      [builtins] Make sure to perform ToPrimitive(key, hint string) in hasOwnProperty even if the receiver is a smi.
      
      Bug: chromium:707580
      Change-Id: I38f8740ac0df5d5e4e99808e4fa20bae88a23a11
      Reviewed-on: https://chromium-review.googlesource.com/528077Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45790}
      fe048410
    • Michael Starzinger's avatar
      Decouple the --thin-strings from the --turbo flag. · af2a8eae
      Michael Starzinger authored
      Both TurboFan and ThinStrings have been enabled by default for a while.
      This just disentangles the implication between those two flags and sets
      the --thin-strings individually. There is no technical reason for the
      implication.
      
      R=jkummerow@chromium.org
      
      Change-Id: I26e5357ffaf953de897c76d6edb8ac640bbeafd0
      Reviewed-on: https://chromium-review.googlesource.com/528076Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45789}
      af2a8eae
    • v8-autoroll's avatar
      Update V8 DEPS. · e840a616
      v8-autoroll authored
      Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/4161431..9d6666d
      
      TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
      
      Change-Id: I3bddd9d99ea1840cce06dcb2c5b2bed33d2e7a7b
      Reviewed-on: https://chromium-review.googlesource.com/527576Reviewed-by: 's avatarv8 autoroll <v8-autoroll@chromium.org>
      Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45788}
      e840a616
    • Sathya Gunasekaran's avatar
      [Collections] Dont adapt args for constructors · 8c9ea5ed
      Sathya Gunasekaran authored
      Bug: v8:5717
      Change-Id: I03579764656aa743bbc9bbf08e6affecd626d73d
      Reviewed-on: https://chromium-review.googlesource.com/527338Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45787}
      8c9ea5ed
    • Ross McIlroy's avatar
      [TurboFan] Add typing for the EmptyString and use this for JSToPrimitiveToString · 2c296b7e
      Ross McIlroy authored
      Add the ability for the typer to track whether a string could be the empty
      string. This is needed for typed lowering of JSStringConcat since we can't
      create cons string chain with the empty string in arbitrary positions.
      
      The ToPrimitiveToString bytecode handler is modified to collect feedback on
      whether it has ever seen the empty string, which is used by
      SpeculativeToPrimitiveToString to ensure that the output is non-empty (or
      depot) which will subsiquently be used to enable inline cons-string creation
      for the JSStringConcat operator in typed lowering in a subsiquent CL.
      
      BUG=v8:6243
      
      Change-Id: I41b99b59798993f756aada8cff90fb137d65ea52
      Reviewed-on: https://chromium-review.googlesource.com/522122
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45786}
      2c296b7e
    • Michael Starzinger's avatar
      [test] Deprecate and remove 'noturbofan' test variant. · e5fb221d
      Michael Starzinger authored
      The variant in question was intended to test Crankshaft, which is being
      deprecated. Note that the variants 'nooptimization' and 'fullcode' still
      test configuration where TurboFan is not active.
      
      R=machenbach@chromium.org
      BUG=v8:6408
      
      Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
      Change-Id: I587c3eee7ba511dfc270aab66b546d2532bc635f
      Reviewed-on: https://chromium-review.googlesource.com/528133Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45785}
      e5fb221d