1. 14 Sep, 2016 2 commits
  2. 13 Sep, 2016 33 commits
  3. 12 Sep, 2016 5 commits
    • mtrofin's avatar
      [wasm] reuse the first compiled module. · b4dc310a
      mtrofin authored
      This change avoids needing to keep around an unused compiled
      module. Instead, the result of compiling the wasm bytes is
      given to the first instance. The module object and that instance object
      point to the same compiled module. Instances are, then, cloned from
      the compiled module the module object points to. When an instance is
      collected, we make sure that the module object still has a clone
      available, and, if the last instance is GC-ed, we also reset the compiled
      module so that it does not reference its heap, so that it (==heap) may
      be collected.
      
      This is achieved by linking the clones in a double-linked list and
      registering a finalizer for each. When we create an instance, we tie it
      in the front of the list, making the module object point to it (O(1)). When
      the finalizer is called, we relink the list over the dying object (O(1)). The
      costliest operation is finalizing the last instance, since we need to visit
      all wasm functions and reset heap references.
      
      BUG=v8:5316
      
      Committed: https://crrev.com/01f5af515728aebe6c5246f4f7dd6c573e8748af
      Review-Url: https://codereview.chromium.org/2305903002
      Cr-Original-Commit-Position: refs/heads/master@{#39153}
      Cr-Commit-Position: refs/heads/master@{#39361}
      b4dc310a
    • mtrofin's avatar
      [wasm] Compilation/Instantiation pipeline works off module object · 8e5ac62d
      mtrofin authored
      Moved the compilation/instantiation pipeline to work off the
      module object (JSObject), making the compiled module data (the
      FixedArray) an implementation detail. This:
      - simplifies the code by removing duplicate decode->compile->instantiate
      sequences
      - sets up the stage for "dressing up" the runtime model with
      stronger typed APIs
      - helps relanding this CL: https://codereview.chromium.org/2305903002/.
        It turns out that GCs during the cloning/instantiation events cause
      trouble, and centering the source of truth on the module object helps
      address this issue.
      
      In the process, clarified cctest setup for wasm-capable isolates,
      and changed signatures for consistency (using ModuleOrigin througout).
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2320723005
      Cr-Commit-Position: refs/heads/master@{#39360}
      8e5ac62d
    • cbruni's avatar
      [elements] Handlify SloppyArguments IndexOfValueImpl · 621f4af7
      cbruni authored
      The raw pointer to the parameter_map might get stale in case of accessors present on
      the arguments object.
      Drive-by-fix: use nullptr instead of the_hole with isolate access.
      
      BUG=chromium:645680
      
      Review-Url: https://codereview.chromium.org/2332503002
      Cr-Commit-Position: refs/heads/master@{#39359}
      621f4af7
    • jarin's avatar
      [turbofan] Another fix for induction variable typing monotonicity. · e031451c
      jarin authored
      BUG=chromium:645851
      
      Review-Url: https://codereview.chromium.org/2332633002
      Cr-Commit-Position: refs/heads/master@{#39358}
      e031451c
    • adamk's avatar
      [turbofan] Switch from a whitelist to a blacklist for NeedsFrameStateInput · 58325e61
      adamk authored
      The whitelist is populated with those inline intrinsics that are lowered
      in JSIntrinsicInlining and were not previously blacklisted. Thus the only
      additional FrameStates this CL adds are those where the caller tries to
      call the INLINE version of an intrinsic but ends up calling the RUNTIME
      version instead.
      
      R=bmeurer@chromium.org
      BUG=chromium:644631
      
      Review-Url: https://codereview.chromium.org/2331543002
      Cr-Commit-Position: refs/heads/master@{#39357}
      58325e61