1. 04 Jun, 2016 1 commit
    • jyan's avatar
      S390: [builtins] Migrate Math.log to TurboFan. · 00c158a6
      jyan authored
      Port f2da19fe
      
      Original commit message:
      
          Introduce a dedicated Float64Log machine operator, that is either
          implemented by a direct C call or by platform specific code, i.e.
          using the FPU on x64 and ia32.
      
          This operator is used to implement Math.log as a proper TurboFan
          builtin on top of the CodeStubAssembler.
      
          Also introduce a NumberLog simplified operator on top of Float64Log
          and use that for the fast inline path of Math.log inside TurboFan
          optimized code.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com, bjaideep@ca.ibm.com
      BUG=
      
      Review-Url: https://codereview.chromium.org/2033353003
      Cr-Commit-Position: refs/heads/master@{#36724}
      00c158a6
  2. 03 Jun, 2016 32 commits
  3. 02 Jun, 2016 7 commits
    • jyan's avatar
      S390: Store Floats as 4 bytes and Double as 8 bytes for codegen · 4d8bcd11
      jyan authored
      R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com, bjaideep@ca.ibm.com
      BUG=
      
      Review-Url: https://codereview.chromium.org/2036523003
      Cr-Commit-Position: refs/heads/master@{#36691}
      4d8bcd11
    • danno's avatar
      [turbofan] Fix assert caused by bogus merging of out-of-scope CodeAssembler variables · 70e302ee
      danno authored
      Previously, CodeAssembler Variables declared in an explicit C++ scope would
      continue to be merged into future labels beyond that scope, causing
      asserts. This CL ensures that Variables are properly ignored when they go out of
      scope.
      
      Review-Url: https://codereview.chromium.org/2035683002
      Cr-Commit-Position: refs/heads/master@{#36690}
      70e302ee
    • danno's avatar
      [turbofan] Fix phi-hinting problem with deferred blocks · afb0e7a4
      danno authored
      Previously, turbofan selected the gap use from first predecessor block when
      hinting a phi, unless that block was deferred, in which case the gap move from
      the first non-deferred predecessor block was chosen.
      
      This strategy didn't guarantee that an important invariant was maintained: the
      predecessor blocks chosen for hinting phis must preceed the phi's block in the
      rpo ordering. In most cases the strategy worked, since graphs generated by the
      AstGraphBuilder and existing stubs just happened to always generate schedules
      where this rpo ordering property for the first predecessor block, but it is
      quite possible to generate a code stub by hand that doesn't have this property
      (see included test case).
      
      After this CL, the allocator chooses either the the first non-deferred
      "rpo-preceeding" block to be the hinting block, or the first deferred
      "rpo-preceeding" block if that doesn't exist. In all previously-existing code,
      this behavior is the same as the original algorithm, but has the benefit of not
      failing in the register allocator in hand-crafted stubs where all the
      "rpo-preceeding" predecessors are all in deferred code.
      
      Review-Url: https://codereview.chromium.org/2030463003
      Cr-Commit-Position: refs/heads/master@{#36689}
      afb0e7a4
    • gsathya's avatar
      Promises: Make PromiseSet operation monomorphic · df4f8a2b
      gsathya authored
      The PromiseSet operation is called with two types of promises
      1) A newly created promise object with no properties
      2) Promise object with callbacks and other properties
      
      PromiseSet is called with the first type of promise (with no
      properties) from multiple call sites. PromiseSet is called with the
      second type of promise object only from FulfillPromise. Furthermore,
      this call only sets the value and status of the promise, the rest of
      the values are reset to UNDEFINED (which isn't necessary).
      
      This patch inlines the calls to set the value and status of the
      promise in FulfillPromise, instead of calling out to PromiseSet.
      
      This patch also reduces the number of symbol lookups, as we only set
      the value and status of the promise, and don't change the callback or
      deferred symbols.
      
      This patch results in a performance improvement of 2.8% over 5 runs in
      the bluebird benchmark.
      
      BUG=v8:5046
      
      Review-Url: https://codereview.chromium.org/2025073002
      Cr-Commit-Position: refs/heads/master@{#36688}
      df4f8a2b
    • bjaideep's avatar
      PPC/s390: [stubs] An easier way of defining a stub call interface descriptor. · 9bba1494
      bjaideep authored
      Port a2fef3af
      
      Original commit message:
      
          This CL introduces a DECLARE_DEFAULT_DESCRIPTOR macro that helps defining a
          CallInterfaceDescriptor in a cases where it is not important which registers
          to use for passing arguments. One can use such descriptors for new TurboFan stubs.
      
          HasPropertyDescriptor now uses the new machinery.
      
      R=ishell@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2034773002
      Cr-Commit-Position: refs/heads/master@{#36687}
      9bba1494
    • ishell's avatar
      [stubs] Extend HasProperty stub with dictionary-mode, string wrapper and... · 3c4f903e
      ishell authored
      [stubs] Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support.
      
      This CL also replaces some Branch() usages with GotoIf/GotoUnless.
      
      (This is a reland after fixing issues that prevented this CL from landing in other CLs).
      
      BUG=v8:2743
      LOG=Y
      
      Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e
      Cr-Commit-Position: refs/heads/master@{#36657}
      
      Review-Url: https://codereview.chromium.org/1995453002
      Cr-Commit-Position: refs/heads/master@{#36686}
      3c4f903e
    • jyan's avatar
      S390: Fix simulator to include AdjustStackLimitForSimulator on Call · 33783870
      jyan authored
      R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com, bjaideep@ca.ibm.com
      BUG=
      
      Review-Url: https://codereview.chromium.org/2033103002
      Cr-Commit-Position: refs/heads/master@{#36685}
      33783870