1. 25 Aug, 2017 1 commit
  2. 23 Aug, 2017 2 commits
    • Ross McIlroy's avatar
      Reland "[Compiler] Remove code aging support." · 8bf15bf1
      Ross McIlroy authored
      > This reverts commit 42d3d36b.
      > 
      > Original change's description:
      > > [Compiler] Remove code aging support.
      > > 
      > > Code aging is no longer supported by any remaining compilers now
      > > that full codegen has been removed. This CL removes all vestiges of
      > > code aging.
      > > 
      > > BUG=v8:6409
      > > 
      > > Change-Id: I945ebcc20c7c55120550c8ee36188bfa042ea65e
      > > Reviewed-on: https://chromium-review.googlesource.com/619153
      > > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Reviewed-by: Marja Hölttä <marja@chromium.org>
      > > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#47501}
      > 
      > TBR=ulan@chromium.org,rmcilroy@chromium.org,marja@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,rodolph.perfetta@arm.com
      > 
      > Change-Id: I9d8b2985e2d472697908270d93a35eb7ef9c88a8
      > No-Presubmit: true
      > No-Tree-Checks: true
      > No-Try: true
      > Bug: v8:6409
      > Reviewed-on: https://chromium-review.googlesource.com/625998
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47506}
      
      TBR=ulan@chromium.org,rmcilroy@chromium.org,marja@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,rodolph.perfetta@arm.com
      
      Change-Id: I68785c6be7686e874b3848103e3a34483eaeb519
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6409
      Reviewed-on: https://chromium-review.googlesource.com/625919Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47535}
      8bf15bf1
    • pan.deng@intel.com's avatar
      [X64] replace far jump by near jump · 093dcd9d
      pan.deng@intel.com authored
      Code size in snapshot can be reduced ~41KB
      
      Contributed by kanghua.yu@intel.com
      
      Bug: None
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Ib73af39fe97cd38728affea40c593236f15bf6e5
      Reviewed-on: https://chromium-review.googlesource.com/588751
      Commit-Queue: Pan Deng <pan.deng@intel.com>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47531}
      093dcd9d
  3. 22 Aug, 2017 2 commits
  4. 21 Aug, 2017 1 commit
  5. 19 Aug, 2017 2 commits
    • Mircea Trofin's avatar
      Revert "Revert "[wasm] Reference indirect tables as addresses of global handles"" · b22fb03a
      Mircea Trofin authored
      This reverts commit af37f6b9.
      
      Reason for revert: Reverted dependency fixed.
      
      Original change's description:
      > Revert "[wasm] Reference indirect tables as addresses of global handles"
      > 
      > This reverts commit 186099d4.
      > 
      > Reason for revert: Need to revert:
      > https://chromium-review.googlesource.com/c/613880
      > 
      > Original change's description:
      > > [wasm] Reference indirect tables as addresses of global handles
      > > 
      > > This sets us up for getting the wasm code generation off the GC heap.
      > > We reference tables as global handles, which have a stable address. This
      > > requires an extra instruction when attempting to make an indirect call,
      > > per table (i.e. one for the signature table and one for the function
      > > table).
      > > 
      > > Bug: 
      > > Change-Id: I83743ba0f1dfdeba9aee5d27232f8823981288f8
      > > Reviewed-on: https://chromium-review.googlesource.com/612322
      > > Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
      > > Reviewed-by: Brad Nelson <bradnelson@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#47444}
      > 
      > TBR=bradnelson@chromium.org,titzer@chromium.org,mtrofin@chromium.org
      > 
      > Change-Id: Ic3dff87410a51a2072ddc16cfc83a230526d4c56
      > No-Presubmit: true
      > No-Tree-Checks: true
      > No-Try: true
      > Reviewed-on: https://chromium-review.googlesource.com/622568
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47450}
      
      TBR=bradnelson@chromium.org,machenbach@chromium.org,titzer@chromium.org,mtrofin@chromium.org
      
      Change-Id: I3dc5dc8be26b5462703edac954cbedbb8f504c1e
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/622035Reviewed-by: 's avatarMircea Trofin <mtrofin@chromium.org>
      Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47455}
      b22fb03a
    • Michael Achenbach's avatar
      Revert "[wasm] Reference indirect tables as addresses of global handles" · af37f6b9
      Michael Achenbach authored
      This reverts commit 186099d4.
      
      Reason for revert: Need to revert:
      https://chromium-review.googlesource.com/c/613880
      
      Original change's description:
      > [wasm] Reference indirect tables as addresses of global handles
      > 
      > This sets us up for getting the wasm code generation off the GC heap.
      > We reference tables as global handles, which have a stable address. This
      > requires an extra instruction when attempting to make an indirect call,
      > per table (i.e. one for the signature table and one for the function
      > table).
      > 
      > Bug: 
      > Change-Id: I83743ba0f1dfdeba9aee5d27232f8823981288f8
      > Reviewed-on: https://chromium-review.googlesource.com/612322
      > Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
      > Reviewed-by: Brad Nelson <bradnelson@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47444}
      
      TBR=bradnelson@chromium.org,titzer@chromium.org,mtrofin@chromium.org
      
      Change-Id: Ic3dff87410a51a2072ddc16cfc83a230526d4c56
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/622568Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47450}
      af37f6b9
  6. 18 Aug, 2017 1 commit
  7. 16 Aug, 2017 1 commit
  8. 14 Aug, 2017 1 commit
  9. 09 Aug, 2017 1 commit
  10. 04 Aug, 2017 1 commit
  11. 03 Aug, 2017 1 commit
  12. 02 Aug, 2017 1 commit
    • Yang Guo's avatar
      Support circular references between generated builtins. · 266be35b
      Yang Guo authored
      Until now, when generating a builtin, it can only embed builtins
      (as call targets) that have already been generated. This is either
      achieved by reordering the builtins list, or by loading the call
      target at runtime from the builtins list (see
      MacroAssembler::TailCallBuiltin).
      
      This patch works around this issue by filling the builtins list
      with dummy code objects, which are later replaced with the completed
      actual builtins. In release mode, this adds around 3ms to 140ms we
      previously needed to populate the builtins list. 
      
      Change-Id: I7d451b3c09a1db4b9e755548102a80c7f0dfada2
      Reviewed-on: https://chromium-review.googlesource.com/586531
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47062}
      266be35b
  13. 01 Aug, 2017 2 commits
  14. 24 Jul, 2017 1 commit
  15. 18 Jul, 2017 1 commit
  16. 13 Jul, 2017 2 commits
  17. 12 Jul, 2017 1 commit
  18. 10 Jul, 2017 1 commit
    • Jaroslav Sevcik's avatar
      Initial optimization of Map.prototype.(get|has) in Turbofan. · aba708a1
      Jaroslav Sevcik authored
      This introduces a new builtin (MapLookupHashIndex) and uses it
      in Turbofan to compute Map.p.get and Map.p.has.
      
      I have also refactored the existing CSA builtins for Map.p.get and 
      Map.p.has to use the new builtin under the hood.
      
      The code for the lookup has been also improved.
      - Specialized lookups for smis, strings, heap numbers and everything else.
        - the advantage is that we can use fast equalities for the lookup.
        - strings can likely be optimized further if we care about the 
          internalized string fast case.
      - Instead of a call to runtime to get the hash code, we now call C directly.
      
      In the Turbofan implementation itself, there are no special optimizations yet.
      The next step is to teach load elimination to reuse the indexes from
      previous calls of MapLookupHashIndex. 
      
      BUG=v8:6410
      
      Change-Id: I0b1a70493eb031d444e51002f6b2cc1f30ea2b68
      Reviewed-on: https://chromium-review.googlesource.com/560169Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46510}
      aba708a1
  19. 28 Jun, 2017 1 commit
  20. 23 Jun, 2017 1 commit
  21. 20 Jun, 2017 1 commit
  22. 16 Jun, 2017 1 commit
  23. 06 Jun, 2017 1 commit
  24. 02 Jun, 2017 1 commit
  25. 01 Jun, 2017 1 commit
  26. 31 May, 2017 1 commit
    • neis's avatar
      [compiler] Delay allocation of code-embedded heap numbers. · 659e8f7b
      neis authored
      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=jarin@chromium.org
      BUG=v8:6048
      
      Review-Url: https://codereview.chromium.org/2900683002
      Cr-Commit-Position: refs/heads/master@{#45635}
      659e8f7b
  27. 22 May, 2017 1 commit
  28. 17 May, 2017 1 commit
  29. 05 May, 2017 1 commit
    • jgruber's avatar
      [string] Move String.p.toLowerCase to CSA · f0e95769
      jgruber authored
      This CL migrates the CPP builtin to CSA with fast paths for strings
      that can be unpacked to direct one-byte strings. Short strings are
      handled directly in CSA, others need to call into C for conversion.
      
      Microbenchmarks for "abcd".toLowerCase() show speedups of 2.5x.
      
      BUG=v8:6353,v8:6344
      
      Review-Url: https://codereview.chromium.org/2859203002
      Cr-Commit-Position: refs/heads/master@{#45141}
      f0e95769
  30. 28 Apr, 2017 1 commit
  31. 19 Apr, 2017 1 commit
    • jgruber's avatar
      [string] Widen StringIndexOf fast path · 4cb01188
      jgruber authored
      The StringIndexOf fast path used to be very narrow, only allowing
      one-byte single-char search strings (and a one-byte subject string).
      
      This changes the CSA fast path to call into our internal SearchString C++
      function instead (after attempting to unpack both Strings), and can handle
      strings of arbitrary length and encoding. The only remaining runtime call is
      when either string needs to be flattened.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2814373002
      Cr-Commit-Position: refs/heads/master@{#44718}
      4cb01188
  32. 13 Apr, 2017 1 commit
  33. 31 Mar, 2017 2 commits
    • Peter Marshall's avatar
      [builtins] Copy array contents using JS in ConstructByArrayLike. · a450c185
      Peter Marshall authored
      The last CL https://chromium-review.googlesource.com/c/456707/ caused
      some pretty heavy performance regressions. After experimenting, it
      seems the easiest and most straight-forward way to copy the elements
      into the new typed array is to do it in JS.
      
      Adds a fast path for typed arrays, where the source typed array has
      the same elements kind, in which case we can just copy the backing
      store using memcpy.
      
      This CL also removes regression test 319120 which is from a pwn2own
      vulnerability. The old code path enforced a maximum byte_length
      that was too low, which this change removes. The length property of
      the typed array must be a Smi, but the byte_length, which can be up
      to 8x larger than length for a Float64Array, can be a heap number.
      
      We can also re-use some of the logic from ConstructByLength when
      deciding whether to allocate the buffer on- or off-heap, so that
      is factored out into InitializeBasedOnLength. We can also re-use
      the DoInitialize helper instead of calling into the runtime,
      meaning we can remove InitializeFromArrayLike.
      
      BUG=v8:5977,chromium:705503,chromium:705394
      
      Change-Id: I63372652091d4bdf3a9491acef9b4e3ac793a755
      Reviewed-on: https://chromium-review.googlesource.com/459621Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44301}
      a450c185
    • jgruber's avatar
      [regexp] Add support for dotAll flag · cec39ad1
      jgruber authored
      The dotAll flag changes behavior of the dot '.' character to match every
      possible single character instead of excluding certain line terminators.
      
      The implementation is staged behind --harmony-regexp-dotall.
      
      Spec proposal: https://github.com/mathiasbynens/es-regexp-dotall-flag
      
      BUG=v8:6172
      
      Review-Url: https://codereview.chromium.org/2780173002
      Cr-Commit-Position: refs/heads/master@{#44295}
      cec39ad1
  34. 17 Mar, 2017 1 commit
    • neis's avatar
      Disentangle assembler from isolate. · 94b088ca
      neis authored
      This is a first step towards moving Turbofan code generation off the main thread.
      
      Summary of the changes:
      - AssemblerBase no longer has a pointer to the isolate. Instead, its
        constructor receives the few things that it needs from the isolate (on most
        architectures this is just the serializer_enabled flag).
      - RelocInfo no longer has a pointer to the isolate. Instead, the functions
        that need it take it as an argument.  (There are currently still a few that
        implicitly access the isolate through a HeapObject.)
      - The MacroAssembler now explicitly holds a pointer to the isolate (before, it
        used to get it from the Assembler).
      - The jit_cookie also moved from AssemblerBase to the MacroAssemblers, since
        it's not used at all in the Assemblers.
      - A few architectures implemented parts of the Assembler with the help
        of a Codepatcher that is based on MacroAssembler.  Since the Assembler no
        longer has the isolate, but the MacroAssembler still needs it, this doesn't
        work anymore.  Instead, these Assemblers now use a new PatchingAssembler.
      
      BUG=v8:6048
      
      Review-Url: https://codereview.chromium.org/2732273003
      Cr-Commit-Position: refs/heads/master@{#43890}
      94b088ca