1. 21 Mar, 2017 34 commits
  2. 20 Mar, 2017 6 commits
    • sebmarchand's avatar
      Disable the 'Function marked forceinline not inlined.' warning on Win. · 2470f2ac
      sebmarchand authored
      This used to be disabled implicitly and started to broke after some
      refactoring in https://codereview.chromium.org/2758563002
      
      BUG=chromium:703027
      
      Review-Url: https://codereview.chromium.org/2758423002
      Cr-Commit-Position: refs/heads/master@{#43958}
      2470f2ac
    • bmeurer's avatar
      [turbofan] Inline String.prototype.concat with PlainPrimitive parameter. · f08c3fd3
      bmeurer authored
      When we hit a call to String.prototype.concat builtin, where we can
      infer that the receiver is a String and there's exactly one parameter,
      which is of type PlainPrimitive, then we can reduce that to a call to
      the StringAddStub instead, optionally converting the non-String - but
      PlainPrimitive - parameter to a String.
      
      BUG=v8:5267
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2758383002
      Cr-Commit-Position: refs/heads/master@{#43957}
      f08c3fd3
    • franzih's avatar
      [type profile] Collect return types. · de04df74
      franzih authored
      Collect type information of return values.
      
      Use *one* feedback slot per function for all its return
      statements. For assignments, we currently use
      several slots per function, because not all
      assignments refer to the same variable.
      
      Instead of the variable names, pass the
      source location and print the function name.
      
      Add an integration test for --type-profile that checks
      for crashes.
      
      Remove type feedback for assignments for now as it convolutes the output.
      
      ************ Function with 2 return statements ********
      function testFunction(param, flag) {
        // We want to test 2 different return positions in one function.
        if (flag) {
          var first_var = param;
          return first_var;
        }
        var second_var = param;
        return second_var;
      }
      
      testFunction({});
      testFunction(123, true);
      testFunction('hello');
      testFunction(undefined);
      *******************************************************
      
      ************* Sample Output ***************************
      Function: testFunction
      424: Object
      374: number
      424: string
      424: undefined
      *******************************************************
      
      Missing work:
      * Handle fall-off returns
      * Collect types for parameters
      * Remove duplicates from the list of collected types and use a common base class.
      
      BUG=v8:5935
      
      Review-Url: https://codereview.chromium.org/2755973002
      Cr-Commit-Position: refs/heads/master@{#43956}
      de04df74
    • mtrofin's avatar
      [wasm] Transferrable modules · 99743ad4
      mtrofin authored
      We want to restrict structured cloning in Chrome to:
      - postMessage senders and receivers that are co-located
      in the same process
      - indexedDB (just https).
      
      For context, on the Chrome side, we will achieve the postMessage part
      by using a mechanism similar to transferrables: the
      SerializedScriptValue will have a list of wasm modules, separate from
      the serialized data stream; and this list won't be copied cross
      process boundaries. The IDB part is achieved by explicitly opting in
      reading/writing to the serialization stream. To block attack vectors
      in IPC cases, the default for deserialization will be to expect data
      in the wasm transfers list.
      
      This change is the V8 side necessary to enabling this design. We
      introduce TransferrableModule, an opaque datatype exposed to the
      embedder. Internally, TransferrableModules are just serialized data,
      because we don't have a better mechanism, at the moment, for
      de-contextualizing/re-contextualizing wasm modules (wrt Isolate and
      Context).
      
      The chrome defaults will be implemented in the
      serialization/deserialization delegates on that side. For the v8 side
      of things, in the absence of a serialization delegate, the V8
      serializer will write to serialization stream. In the absence of a
      deserialization delegate, the deserializer won't work. This asymmetry
      is intentional - it communicates to the embedder the need to make a
      policy decision, otherwise wasm serialization/deserialization won't
      work "out of the box".
      
      BUG=v8:6079
      
      Review-Url: https://codereview.chromium.org/2748473004
      Cr-Commit-Position: refs/heads/master@{#43955}
      99743ad4
    • bjaideep's avatar
      PPC/s390: [wasm] Lazy compilation for asm.js · b1841eec
      bjaideep authored
      Port 4f3e168c
      
      Original Commit Message:
      
          This CL adds general lazy compilation support to WebAssembly, according
          to the design described in the design doc (see referenced bug).
      
          It's not used currently, but I tested locally that all tests succeed if
          I enable it by default.
      
          With a later CL, we will enable lazy compilation by default for
          validate-asm: https://chromium-review.googlesource.com/451318
      
      R=clemensh@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:5991
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2761773004
      Cr-Commit-Position: refs/heads/master@{#43954}
      b1841eec
    • Clemens Hammacher's avatar
      Revert "[wasm] Enable lazy compilation for asm-wasm pipeline" · 7de5d703
      Clemens Hammacher authored
      This reverts commit 64a2287e.
      
      Reason for revert: Breaks on arm64 msan, e.g. https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/13972/steps/Check%20-%20extra/logs/asm-wasm-f32. Will investigate tomorrow.
      
      Original change's description:
      > [wasm] Enable lazy compilation for asm-wasm pipeline
      > 
      > The validate-asm flag now implies lazy compilation.
      > 
      > R=​titzer@chromium.org, ahaas@chromium.org
      > BUG=v8:5991
      > 
      > Change-Id: I00fb5ddbe13440941a3fafd9175cc9a5d182e15a
      > Reviewed-on: https://chromium-review.googlesource.com/451318
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Reviewed-by: Brad Nelson <bradnelson@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#43952}
      
      TBR=bradnelson@chromium.org,ahaas@chromium.org,clemensh@chromium.org,hablich@chromium.org,v8-reviews@googlegroups.com
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:5991
      
      Change-Id: I8fe8d9268237c7397f6f22cd20ba6f23b9f5785a
      Reviewed-on: https://chromium-review.googlesource.com/456506Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#43953}
      7de5d703