1. 13 Feb, 2019 24 commits
  2. 12 Feb, 2019 16 commits
    • Pavel Feldman's avatar
      DevTools: roll third_party/inspector_protocol, wire binary operation. · 5dffb596
      Pavel Feldman authored
      Bug: chromium:929862
      Change-Id: I8c23be1d22f70d1143d570050514c36ecfb30fc7
      Reviewed-on: https://chromium-review.googlesource.com/c/1466003Reviewed-by: 's avatarAlexei Filippov <alph@chromium.org>
      Commit-Queue: Pavel Feldman <pfeldman@chromium.org>
      Commit-Queue: Alexei Filippov <alph@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59541}
      5dffb596
    • Matt Gardner's avatar
      Improve IC hole-to-underfined conversion heuristics · ba78fef1
      Matt Gardner authored
      This CL reuses the logic to determine if out of bounds loads should be allowed
      to determine whether in bounds hole loads should be converted to undefined or
      handled as IC misses.
      
      bug: v8:8561
      Change-Id: I1da859aba082cf21c67e7202b1e308ac4614b64a
      Reviewed-on: https://chromium-review.googlesource.com/c/1465182Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Matt Gardner <magardn@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#59540}
      ba78fef1
    • Maciej Goszczycki's avatar
      [cleanup] Remove LoadAndUntagToWord32Root · 1eec85bb
      Maciej Goszczycki authored
      It's unused and hinders separating read-only roots into a shared table.
      
      Bug: v8:8562
      Change-Id: I4a2889d9be5df877b2f9d11ce5146a091d864cd3
      Reviewed-on: https://chromium-review.googlesource.com/c/1466963Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
      Cr-Commit-Position: refs/heads/master@{#59539}
      1eec85bb
    • Tamer Tas's avatar
      [testrunner] enable the progress indicator · baeb4e32
      Tamer Tas authored
      Using test generators meant that we had to remove the progress indicator since
      the total number of tests weren't known before-hand.
      
      This CL implements a progress indicator using test number estimations.
      
      cctest and unittests progress indicator is accurate, however estimating
      means the progress will terminate over 100% in big test suites and sometimes
      under 100%.
      
      R=machenbach@chromium.org
      CC=​sergiyb@chromium.org,yangguo@chromium.org
      
      Bug: v8:8769
      Change-Id: I40ca5b40f9b1223376d33707f0945900ea98cea3
      Reviewed-on: https://chromium-review.googlesource.com/c/1460471
      Commit-Queue: Tamer Tas <tmrts@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59538}
      baeb4e32
    • Michael Achenbach's avatar
      [test] Bump shards on slow bots · 9d863741
      Michael Achenbach authored
      NOTRY=true
      
      TBR=sergiyb@chromium.org
      
      Change-Id: Iaff2d456af6e6494c725efa60cbdc9895201bef5
      Reviewed-on: https://chromium-review.googlesource.com/c/1466962Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59537}
      9d863741
    • Benedikt Meurer's avatar
      [turbofan] Tweak JSCallReducer::ReduceCallApiFunction a bit more. · 5a4e0959
      Benedikt Meurer authored
      The previous change to JSCallReducer::ReduceCallApiFunction regressed
      the case a bit where the optimized graph has some knowledge about the
      receiver already, but the API callback didn't need any receiver checks,
      as in that case we unnecessarily added a ConvertReceiver node. This
      change refactors the code to first see if there's information in the
      graph about the receiver, and only if none is found, introduce the
      ConvertReceiver node.
      
      It also removes the unnecessary context load from the target function,
      since the API callback doesn't care about the concrete context, and
      we never inline cross native contexts, so using whatever incoming
      context we have is perfectly fine (and saves us from unnecessarily
      materializing the target just to load the native context off of it).
      
      Drive-by-fix: Remove bogus comment about CallApiCallbackStub parameters.
      
      Bug: v8:8820
      Change-Id: Ide1b283d9e448c3f0ae8f2daf4b1ad0202eae09e
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Reviewed-on: https://chromium-review.googlesource.com/c/1466881
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59536}
      5a4e0959
    • Tamer Tas's avatar
      [fuzzer] create a test-suite for the fuzzer · e2207c67
      Tamer Tas authored
      Testrunner test-suite doesn't have automated tests for the Fuzzer. A significant
      change for the testrunner may break the fuzzers. We don't have a way to catch
      even the syntax errors for the fuzzer before landing CLs.
      
      This CL creates a rudimentary test-suite that runs the fuzzer without any tests
      to see if APIs still work as intended.
      
      R=machenbach@chromium.org
      CC=yangguo@chromium.org,sergiyb@chromium.org
      
      No-Try: true
      Bug: v8:8763
      Change-Id: Ib4519ca093de2af5279964edd164cee04aae77a8
      Reviewed-on: https://chromium-review.googlesource.com/c/1466301Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Tamer Tas <tmrts@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59535}
      e2207c67
    • Maya Lekova's avatar
      [turbofan] Add handling of jumps to the serializer · 7b69507c
      Maya Lekova authored
      Implemented branching and merging of Environments to facilitate handling of
      conditional and unconditional jumps in the SerializerForBackgroundCompilation.
      Added tests and printing helpers for the Environment. The internal structure
      of the hints was changed to ZoneSet to support avoiding of duplicates.
      Alternative implementation considerations were documented here:
      https://docs.google.com/document/d/1vCQYhtFPqXafSMweSnGD8l0TKEIB6cPV5UGMHJtpy8k/edit?ts=5bf7d341#heading=h.jx4br0df5qzm
      
      R=neis@chromium.org
      
      Bug: v8:7790
      Change-Id: Ib929c75ddb7f7fb290a5ca28d4422680a1514a4f
      Reviewed-on: https://chromium-review.googlesource.com/c/1451847Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59534}
      7b69507c
    • Michael Lippautz's avatar
      Reland "[global-handles] Do not clear finalization callback on moving" · 0a78f454
      Michael Lippautz authored
      This is a reland of d8a457cb
      
      Original change's description:
      > [global-handles] Do not clear finalization callback on moving
      >
      > Bug: chromium:923361
      > Change-Id: Id4a0f6515f6b17cec2732df561c1e82080dc29c8
      > Reviewed-on: https://chromium-review.googlesource.com/c/1462963
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#59498}
      
      Bug: chromium:923361
      Tbr: mlippautz@chromium.org
      Change-Id: I05bbaa05daf07232f5356cb0a71d6d1c959ddadd
      Reviewed-on: https://chromium-review.googlesource.com/c/1466648Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59533}
      0a78f454
    • Georg Neis's avatar
      [ic] Rename FindFirstName & FindFirstMap to GetName & GetFirstMap · a439a7a2
      Georg Neis authored
      ... as there's no search involved and there are never multiple names.
      
      Change-Id: Ice88c4d98195e74f6540926b0a1199df62b42da2
      Reviewed-on: https://chromium-review.googlesource.com/c/1466645Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59532}
      a439a7a2
    • peterwmwong's avatar
      [builtins]: Optimize CreateTypedArray to use element size log 2 for calculations. · c9ef0405
      peterwmwong authored
      TypedArrayElementsInfo now represents an element's size as a log 2 and typed as
      uintptr.  This simplifies and speeds up (avoids possible HeapNumber allocations) a
      number of calculations:
      
        - Number of Elements (length) -> Byte Length - is now a WordShl
        - Byte Length -> Number of Elements (length) - is now a WordShr
        - Testing alignment (byte offset or length)  - is now a WordAnd
      
      These element/byte length related calculations are encapsulated in
      TypedArrayElementsInfo as struct methods.
      
      This reduces the size of CreateTypedArray by 2.125 KB (24%) on Mac x64.release:
        - Before: 9,088
        - After:  6,896
      
      This improves the performance of the following microbencmarks
        - TypedArrays-ConstructWithBuffer: ~87%
        - TypedArrays-SubarrayNoSpecies:   ~28%
      
      Bug: v8:7161
      Change-Id: I2239fd0e0af9d3ad55cd52318088d3c7c913ae44
      Reviewed-on: https://chromium-review.googlesource.com/c/1456299
      Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59531}
      c9ef0405
    • Tamer Tas's avatar
      [testrunner] enable variant sharding · ad5b6d7d
      Tamer Tas authored
      Testrunner runs variants of a test sequentially without taking sharding into
      account. A slow test with slow variants slows down the whole test run no matter
      the sharding configuration.
      
      This CL implements a test hashing algorithm and variant sharding for test
      variants.
      
      R=machenbach@chromium.org
      CC=yangguo@chromium.org,sergiyb@chromium.org
      
      Bug: v8:8174
      Change-Id: I15f8c547fa2f361fb6c53bf8d5df055d3df38d3e
      Reviewed-on: https://chromium-review.googlesource.com/c/1458016
      Commit-Queue: Tamer Tas <tmrts@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59530}
      ad5b6d7d
    • Andreas Haas's avatar
      [wasm] Generate code for the table.get and table.set instructions · 01dc5707
      Andreas Haas authored
      This CL contains the following changes:
      (1) Allocate memory for WasmTables in the WasmInstance.
          - We extend the WasmInstance by a FixedArray which stores
            references to the WasmTables.
      (2) Rename the name of the backing store of WasmTables from `functions`
          to `elements`.
          - The name `functions` just does not fit anyref tables.
      (3) Generate code with TurboFan for table.get and table.set.
      (4) Extend wasm-module-builder.js to be able to generate modules with
          multiple tables.
      (5) Add  mjsunit tests to test table.get and table.set.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:7581
      Change-Id: I44af4838ee7a37b394841a2f673ecae5734a4d1c
      Reviewed-on: https://chromium-review.googlesource.com/c/1463519
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59529}
      01dc5707
    • Tamer Tas's avatar
      [test] migrate mkgrokdump suite to TestLoader · f269293a
      Tamer Tas authored
      R=machenbach@chromium.org
      CC=yangguo@chromium.org,sergiyb@chromium.org
      
      Bug: v8:8728
      Change-Id: Ia45bd1f19f97c7c3491b57e6808f2c27643f5521
      Reviewed-on: https://chromium-review.googlesource.com/c/1466561Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Tamer Tas <tmrts@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59528}
      f269293a
    • Mythri Alle's avatar
      Revert "[global-handles] Do not clear finalization callback on moving" · 9fecc3b4
      Mythri Alle authored
      This reverts commit d8a457cb.
      
      Reason for revert: I suspect that this caused the recent spike in the crashes on Canary. So, speculatively reverting this to see if things improve. More details on this bug:  chromium:931181
      
      Original change's description:
      > [global-handles] Do not clear finalization callback on moving
      > 
      > Bug: chromium:923361
      > Change-Id: Id4a0f6515f6b17cec2732df561c1e82080dc29c8
      > Reviewed-on: https://chromium-review.googlesource.com/c/1462963
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#59498}
      
      TBR=ulan@chromium.org,mlippautz@chromium.org
      
      Change-Id: Id4d2f49be2a6a913f51f35db9877c5b098f9e20a
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:923361, chromium:931181
      Reviewed-on: https://chromium-review.googlesource.com/c/1466646Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Commit-Queue: Mythri Alle <mythria@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59527}
      9fecc3b4
    • Benedikt Meurer's avatar
      [turbofan] Generalize and optimize API calls a bit. · cd1063ca
      Benedikt Meurer authored
      When calling API functions (i.e. Blink C++ DOM methods and accessors)
      directly from TurboFan we currently only optimize that to a fast call
      via the CallApiCallback builtin when TurboFan is able to find reliable
      map information about the receiver in the graph. This is usually only
      the case when the call is preceeded by a monomorphic or polymorphic
      property access on the receiver, i.e. something like
      
      ```js
      element.hasAttribute("bar");
      ```
      
      will work, since the call to the `hasAttribute` method is immediately
      preceeded by a `CheckMaps(element)` in the monomorphic/polymorphic case.
      However this no longer works when the responsible LOAD_IC was
      megamorphic or the method is called via `Function#call()` for example:
      
      ```js
      const hasAttribute = Element.prototype.hasAttribute;
      // ...
      hasAttribute.call(element, "bar");
      ```
      
      This change allows for more optimizations in two cases:
      
      1. When the method accepts any receiver (i.e. no signature type and no
         access checks needed), and
      2. when we find information about the receiver in the graph, but that
         information is not reliable.
      
      For the first case, when the API method accepts any receiver and doesn't
      limit it to specific types of receivers (aka no compatible receiver
      check is required), we just insert a ConvertReceiver receiver and pass
      the result as both the receiver and the holder to the API callback.
      
      For the second case, we lift the current restriction of only supporting
      reliable, stable receiver map information, because we only need to know
      two things:
      
      a. The Map::constructor field on the root map satisfies the compatible
         receiver check.
      b. If the receiver is a JSObject, then the "access check needed" bit
         is not set (or the API method accepts any receiver).
      
      Both of these cannot change with map transitions. So if at some point in
      the past we knew that this held for a given receiver (by looking into
      the TurboFan graph), we definitely know that it's still going to hold at
      any later point.
      
      Bug: v8:8820
      Change-Id: I2316e8a4e2b3b7560e5c5d2b7d1569ebe1d3a1c8
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Reviewed-on: https://chromium-review.googlesource.com/c/1466562
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59526}
      cd1063ca