1. 03 Jun, 2016 27 commits
  2. 02 Jun, 2016 13 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
    • ishell's avatar
      Make CodeStubAssemblerTester use its own zone instead of Isolate::runtime_zone(). · e7d8279a
      ishell authored
      ... to ensure that the zone is properly shut down.
      
      Review-Url: https://codereview.chromium.org/2034463003
      Cr-Commit-Position: refs/heads/master@{#36684}
      e7d8279a
    • ishell's avatar
      Move test/cctest/compiler/test-code-stub-assembler.cc to test/cctest directory. · 5a5c115e
      ishell authored
      ... since CodeStubAssembler does not belong to v8::internal::compiler namespace anymore.
      
      Review-Url: https://codereview.chromium.org/2035533003
      Cr-Commit-Position: refs/heads/master@{#36683}
      5a5c115e
    • bjaideep's avatar
      AIX: Define __STDC_FORMAT_MACROS in gypi file · b5a2b4db
      bjaideep authored
          Some system header files on AIX include inttypes.h without
          defining __STDC_FORMAT_MACROS and therefore the printf format
          specifier macro (for eg. PRId64) doesn't get defined as they
          are guarded with __STDC_FORMAT_MACROS macro on AIX.
          This error showed up recently when the format specifier was used in
          wasm-interpreter.cc, where a AIX system header file is included
          which also includes inttypes.h without defining __STDC_FORMAT_MACROS.
      
      R=ahaas@chromium.org, titzer@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/2033483002
      Cr-Commit-Position: refs/heads/master@{#36682}
      b5a2b4db
    • jkummerow's avatar
      Refactor Maps' code_cache · 31882103
      jkummerow authored
      Most maps have a small code cache (often only one entry), so this patch
      optimizes memory consumption of such cases by using plain FixedArrays,
      only switching to CodeCacheHashTables when the number of cached entries
      gets so large that linear-scan lookups get too slow.
      
      On loading inbox.google.com, this gets the aggregate size of all maps'
      code caches (there are about 13,600 of them) from 4300 KB to 970 KB.
      
      Review-Url: https://codereview.chromium.org/2021373002
      Cr-Commit-Position: refs/heads/master@{#36681}
      31882103
    • mvstanton's avatar
      Compiler::CompileBaseline didn't ensure that the closure had literals. · 4f205165
      mvstanton authored
      It should work just the same as Compile() and CompileOptimized().
      
      R=mstarzinger@chromium.org
      BUG=
      
      Review-Url: https://codereview.chromium.org/2033053002
      Cr-Commit-Position: refs/heads/master@{#36680}
      4f205165
    • mstarzinger's avatar
      [turbofan] Remove eager frame state from runtime calls. · a7ff6165
      mstarzinger authored
      This removes the frame state input representing the before-state from
      nodes having the {JSCallRuntime} operator. These frame states can by now
      be found via checkpoints in the graph. It also makes the predicate for
      runtime function ids (i.e. {Linkage::NeedsFrameStateInput}) binary.
      
      R=jarin@chromium.org
      BUG=v8:5021
      
      Review-Url: https://codereview.chromium.org/2018353004
      Cr-Commit-Position: refs/heads/master@{#36679}
      a7ff6165