1. 26 Sep, 2018 23 commits
  2. 25 Sep, 2018 17 commits
    • Vasili Skurydzin's avatar
      ppc64, aix: Fix failing wasm cctests on Aix platform · e3eedfb4
      Vasili Skurydzin authored
      src/compiler/ppc/instruction-selector-ppc.cc: ensure that input register
      does not alias any temporary registers in VisitWord64ReverseBytes method.
      
      Change-Id: I18ddfc5cbe37ba7551ca25efa59d4973f77ffb02
      Reviewed-on: https://chromium-review.googlesource.com/1244617Reviewed-by: 's avatarJunliang Yan <jyan@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#56225}
      e3eedfb4
    • Yang Guo's avatar
      Reland "[snapshot] add checksum to startup snapshot" · 8ff37bc7
      Yang Guo authored
      This is a reland of bcb8d49b
      
      TBR=petermarshall@chromium.org
      
      Original change's description:
      > [snapshot] add checksum to startup snapshot
      >
      > We already had checksumming for code cache data. We now extend
      > checksumming to the startup snapshot to catch data corruption early.
      >
      > The performance impact for deserialization is a regression of 1-2%,
      > which should be acceptable.
      >
      > Sample output for the included test with --profile-deserialization:
      >
      > [Verifying snapshot checksum took 0.023 ms]
      > [Deserializing isolate (134348 bytes) took 1.891 ms]
      > [Verifying snapshot checksum took 0.024 ms]
      > [Deserializing isolate (134348 bytes) took 1.654 ms]
      > [Deserializing context #0 (47208 bytes) took 0.331 ms]
      > Deserialization will reserve:
      >     208168 bytes per isolate
      >     123368 bytes per context #0
      > Snapshot blob consists of:
      >     134492 bytes in 6 chunks for startup
      >     115272 bytes for builtins
      >      47152 bytes in 31 chunks for context #0
      > [Verifying snapshot checksum took 0.048 ms]
      > [Verifying snapshot checksum took 0.043 ms]
      >
      > R=peria@chromium.org, petermarshall@chromium.org
      >
      > Bug: chromium:881417
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      > Change-Id: Ibc57520d459c86be8972f731aa35045b5e3751d7
      > Reviewed-on: https://chromium-review.googlesource.com/1241874
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Commit-Queue: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56217}
      
      Bug: chromium:881417
      Change-Id: I037f378fc2d45c3e0fa670bf538df68cbba5c53c
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1243191Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56224}
      8ff37bc7
    • Frank Tang's avatar
      [Intl] Ship Intl.RelativeTimeFormat · a3b97bab
      Frank Tang authored
      Bug: v8:7869
      Change-Id: If87ab5126a41513d0c69acc849d483159f1a2fde
      Reviewed-on: https://chromium-review.googlesource.com/1241317Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Commit-Queue: Frank Tang <ftang@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56223}
      a3b97bab
    • Clemens Hammacher's avatar
      [wasm] Avoid internal use of Maybe · a345e766
      Clemens Hammacher authored
      Maybe (defined in include/v8.h) is an API object, not meant to be used
      in internal code. Instead of failing, it will call a callback on the
      isolate.
      It also adds one word to the size of each WasmCode object.
      
      This CL avoids its use WasmCode. Instead, we use a sentinel value as the
      function index of anonymous functions and add proper DCHECKs.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:8015
      Change-Id: I4bb155e814d8d0cc9e40b33202b4431718ac79b1
      Reviewed-on: https://chromium-review.googlesource.com/1242096
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56222}
      a345e766
    • Clemens Hammacher's avatar
      Revert "[snapshot] add checksum to startup snapshot" · 0a04f263
      Clemens Hammacher authored
      This reverts commit bcb8d49b.
      
      Reason for revert: MSan compile error: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/23025
      
      Original change's description:
      > [snapshot] add checksum to startup snapshot
      > 
      > We already had checksumming for code cache data. We now extend
      > checksumming to the startup snapshot to catch data corruption early.
      > 
      > The performance impact for deserialization is a regression of 1-2%,
      > which should be acceptable.
      > 
      > Sample output for the included test with --profile-deserialization:
      > 
      > [Verifying snapshot checksum took 0.023 ms]
      > [Deserializing isolate (134348 bytes) took 1.891 ms]
      > [Verifying snapshot checksum took 0.024 ms]
      > [Deserializing isolate (134348 bytes) took 1.654 ms]
      > [Deserializing context #0 (47208 bytes) took 0.331 ms]
      > Deserialization will reserve:
      >     208168 bytes per isolate
      >     123368 bytes per context #0
      > Snapshot blob consists of:
      >     134492 bytes in 6 chunks for startup
      >     115272 bytes for builtins
      >      47152 bytes in 31 chunks for context #0
      > [Verifying snapshot checksum took 0.048 ms]
      > [Verifying snapshot checksum took 0.043 ms]
      > 
      > R=​peria@chromium.org, petermarshall@chromium.org
      > 
      > Bug: chromium:881417
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      > Change-Id: Ibc57520d459c86be8972f731aa35045b5e3751d7
      > Reviewed-on: https://chromium-review.googlesource.com/1241874
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Commit-Queue: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56217}
      
      TBR=peria@chromium.org,yangguo@chromium.org,petermarshall@chromium.org
      
      Change-Id: Iccb82092858ab68a5d6ae9552fa716108eda354b
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:881417
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1243190Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56221}
      0a04f263
    • Ben L. Titzer's avatar
      [wasm] Load formal_param_count for mismatched import calls · 89f52f8a
      Ben L. Titzer authored
      For WASM import calls to JSFunctions where the arity is mismatched,
      we currently generate code that inlines the formal parameter count
      of the target function as a constant in a call to the arguments
      adapter. This CL changes this to generate code that loads the formal
      parameter count from the function at runtime in order to permit
      more sharing later.
      
      R=mstarzinger@chromium.org
      CC=clemensh@chromium.org
      
      Change-Id: I5cce97fc338f6468f9d42d48f5bc860b25fb7d73
      Reviewed-on: https://chromium-review.googlesource.com/1243108
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56220}
      89f52f8a
    • Daniel Clifford's avatar
      Fix nits in presubmit.py and handling of .tq otherwise formatting · 274aecdd
      Daniel Clifford authored
      Change-Id: I69a4db1d8be47bad56df74447a29526e9623cb80
      Reviewed-on: https://chromium-review.googlesource.com/1243107
      Commit-Queue: Daniel Clifford <danno@chromium.org>
      Reviewed-by: 's avatarSergiy Byelozyorov <sergiyb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56219}
      274aecdd
    • Toon Verwaest's avatar
      [parser] Don't resolve preparser variables for arrow functions · 55ecf51e
      Toon Verwaest authored
      I moved AnalyzePartially from ParseFunctionLiteral to SkipFunction, but arrow
      functions only used the ResetAfterPreparsing part.
      
      Bug: chromium:888825
      
      Change-Id: I08de99af128b28031df6ed86a725e4dc918078f8
      Reviewed-on: https://chromium-review.googlesource.com/1243383Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56218}
      55ecf51e
    • Yang Guo's avatar
      [snapshot] add checksum to startup snapshot · bcb8d49b
      Yang Guo authored
      We already had checksumming for code cache data. We now extend
      checksumming to the startup snapshot to catch data corruption early.
      
      The performance impact for deserialization is a regression of 1-2%,
      which should be acceptable.
      
      Sample output for the included test with --profile-deserialization:
      
      [Verifying snapshot checksum took 0.023 ms]
      [Deserializing isolate (134348 bytes) took 1.891 ms]
      [Verifying snapshot checksum took 0.024 ms]
      [Deserializing isolate (134348 bytes) took 1.654 ms]
      [Deserializing context #0 (47208 bytes) took 0.331 ms]
      Deserialization will reserve:
          208168 bytes per isolate
          123368 bytes per context #0
      Snapshot blob consists of:
          134492 bytes in 6 chunks for startup
          115272 bytes for builtins
           47152 bytes in 31 chunks for context #0
      [Verifying snapshot checksum took 0.048 ms]
      [Verifying snapshot checksum took 0.043 ms]
      
      R=peria@chromium.org, petermarshall@chromium.org
      
      Bug: chromium:881417
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: Ibc57520d459c86be8972f731aa35045b5e3751d7
      Reviewed-on: https://chromium-review.googlesource.com/1241874Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56217}
      bcb8d49b
    • Alexey Kozyatinskiy's avatar
      debug: LoadLookupSlot should initialize receiver for modules.. · e4396813
      Alexey Kozyatinskiy authored
      .. otherwise V8 crashes on attempt to use imported function as part
      of expression passed to Debugger.evaluateOnCallFrame.
      
      R=neis@chromium.org
      
      Bug: chromium:878029
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: I61b837f5c7b84a80d91a9cdaaac0422a24aa1620
      Reviewed-on: https://chromium-review.googlesource.com/1241475Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56216}
      e4396813
    • Michael Starzinger's avatar
      [wasm] Improve exception throwing code sequence. · 72131a74
      Michael Starzinger authored
      This reduces the size a "Throw" or "Rethrow" takes in generated code by
      switching from runtime calls to using WebAssembly runtime stubs. It also
      removes a specialized runtime function and instead uses {Runtime_Throw}
      which is generic and used by all code (including JavaScript code).
      
      R=clemensh@chromium.org
      BUG=v8:8091
      
      Change-Id: Id4f637525f2ea9d81227931b1290d90ca5f376d1
      Reviewed-on: https://chromium-review.googlesource.com/1243106
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56215}
      72131a74
    • Clemens Hammacher's avatar
      [wasm] Refactor code installation in NativeModule · 69f264f5
      Clemens Hammacher authored
      Whenever we insert new code in the module, we call {set_code} and
      {PatchJumpTable}. This CL refactors these two calls into a new
      {InstallCode} method. This method will be extended in a future CL to
      maintain a counter of potentially dead code and trigger GC.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:8217
      Change-Id: I1a1421806c8518cf7b6b78fe4aa2e969d4e4dde6
      Reviewed-on: https://chromium-review.googlesource.com/1243003
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56214}
      69f264f5
    • Andreas Haas's avatar
      [wasm] Notify StreamingDecoder when its AsyncCompileJob is destructed · 1a5a6c36
      Andreas Haas authored
      The lifetime of the AsyncCompileJob does not depend on the lifetime of
      the stream which feeds data into it. Multiple checks guarantee that the
      AsyncCompileJob still exists when the stream wants to call it. With
      this CL we add an additional level of defense to make sure that
      streaming does not continue after the AsyncCompileJob got destructed.
      
      It is not clear if this CL fixes the bug referenced below. However, the
      crashes there could be caused when streaming accesses the
      AsyncCompileJob after it got destructed already. I was not able though
      to find a scenario where this is possible.
      
      R=clemensh@chromium.org
      
      Bug: chromium:888170
      Change-Id: Id5c6cc34842735a3adaf3e09c57cbe923cfc2630
      Reviewed-on: https://chromium-review.googlesource.com/1241961
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56213}
      1a5a6c36
    • Ross McIlroy's avatar
      [Compile] Refactor UnoptimizedCompilationJob to use BackgroundCompilerTask · 3a00ba5f
      Ross McIlroy authored
      This CL makes UnoptimizedCompilationJob a simple proxy for
      BackgroundCompilerTask. A follow-up CL will remove UnoptimizedCompilationJob
      entirely and have CompilerDispatcher deal directly with BackgroundCompilerTasks
      
      BUG=v8:8041, v8:8015
      
      Change-Id: Ia53d05c015c4ca2ee32a4d1c5d0c65edb3caeda8
      Reviewed-on: https://chromium-review.googlesource.com/1236257
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56212}
      3a00ba5f
    • Creddy's avatar
      [interpreter] Separate bytecodes for one-shot property loads and stores · eccf1867
      Creddy authored
      Create LdaNamedPropertyNoFeedback and StaNamedPropertyNoFeedback
      for one-shot property loads and stores. This CL replaces the runtime
      calls with new bytecodes for named property load stores in one-shot code.
      the runtime calls needed extra set of consecutive registers and
      additional move instructions. This increased the size of
      bytecode-array and possibly extended the life time of objects.
      By replacing them with NoFeedback bytecodes we avoid these issues.
      
      Bug: v8:8072
      Change-Id: I20a38a5ce9940026171d870d354787fe0b7c5a6f
      Reviewed-on: https://chromium-review.googlesource.com/1196725Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Chandan Reddy <chandanreddy@google.com>
      Cr-Commit-Position: refs/heads/master@{#56211}
      eccf1867
    • Ben L. Titzer's avatar
      [wasm] Introduce WasmImportCallKind enum · 7f7545cf
      Ben L. Titzer authored
      The WASM engine compiles per-import wrappers for callables imported
      into a WASM instance that have one of a number of different shapes,
      depending on the type of the imported function and whether there is
      a signature match. This CL introduces an enum with a value for each
      case in preparation for introducing a per-kind cache.
      
      R=mstarzinger@chromium.org
      CC=clemensh@chromium.org
      
      Change-Id: If9b7355ff7c57a329c096f93f3624bc3d6c74e3f
      Reviewed-on: https://chromium-review.googlesource.com/1243045
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56210}
      7f7545cf
    • Hai Dang's avatar
      Add fast path for cloning by iterating fast holey arrays. · 9f7ec7d4
      Hai Dang authored
      This fast path copies the backing store and replaces holes with undefined.
      In the case where the array is holey but there is no actual holes, the
      resulting array is of the same elements kind as the source array. If a hole
      does appear, the resulting array will be of PACKED_ELEMENTS kind so that it
      can contain undefined.
      
      The builtin CloneFastJSArrayFillingHoles includes this fast path, but
      CloneFastJSArray does not (it still behaves as before). In case of fast
      packed arrays, CloneFastJSArrayFillingHoles behaves the same as
      CloneFastJSArray.
      
      Bug: chromium:881273, v8:7980
      Change-Id: I49c641c1a673313f06aeed93077031ab6b017b6d
      Reviewed-on: https://chromium-review.googlesource.com/1236573
      Commit-Queue: Hai Dang <dhai@google.com>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56209}
      9f7ec7d4