1. 10 Jun, 2017 1 commit
  2. 09 Jun, 2017 30 commits
  3. 08 Jun, 2017 9 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