1. 03 Jun, 2016 20 commits
  2. 02 Jun, 2016 20 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
    • mythria's avatar
      Updates incremental marking pass to collect object statistics. · 31392d70
      mythria authored
      Object statistics were collected during the mark compact phase. If
      an incremental marking happened before mark compact phase then most
      of the objects are already visited and hence this phase does not collect
      accurate statistics. This cl updates incremental marking pass to collect
      object statistics along with mark compact phase.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/1943423002
      Cr-Commit-Position: refs/heads/master@{#36678}
      31392d70
    • jochen's avatar
      Reland "Move (hopefully) remaining isolate related variables to toolchain.gypi" · 09d90e4e
      jochen authored
      BUG=chromium:609107
      R=machenbach@chromium.org
      
      Review-Url: https://codereview.chromium.org/2032733003
      Cr-Commit-Position: refs/heads/master@{#36677}
      09d90e4e
    • neis's avatar
      Fix bug in yield* desugaring. · 8154d977
      neis authored
      In one corner case, we incorrectly returned a value without first wrapping it in
      an iterator result object.
      
      R=littledan@chromium.org
      BUG=v8:5057
      
      Review-Url: https://codereview.chromium.org/2034653002
      Cr-Commit-Position: refs/heads/master@{#36676}
      8154d977
    • ishell's avatar
      [stubs] An easier way of defining a stub call interface descriptor. · a2fef3af
      ishell authored
      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.
      
      Review-Url: https://codereview.chromium.org/2002143002
      Cr-Commit-Position: refs/heads/master@{#36675}
      a2fef3af
    • jarin's avatar
      [turbofan] Initial version of number type feedback. · 216bcf9f
      jarin authored
      This introduces optimized number operations based on type feedback.
      
      Summary of changes:
      
      1. Typed lowering produces SpeculativeNumberAdd/Subtract for JSAdd/Subtract if
         there is suitable feedback. The speculative nodes are connected to both the
         effect chain and the control chain and they retain the eager frame state.
      
      2. Simplified lowering now executes in three phases:
        a. Propagation phase computes truncations by traversing the graph from uses to
           definitions until checkpoint is reached. It also records type-check decisions
           for later typing phase, and computes representation.
        b. The typing phase computes more precise types base on the speculative types (and recomputes
           representation for affected nodes).
        c. The lowering phase performs lowering and inserts representation changes and/or checks.
      
      3. Effect-control linearization lowers the checks to machine graphs.
      
      Notes:
      
      - SimplifiedLowering will be refactored to have handling of each operation one place and
        with clearer input/output protocol for each sub-phase. I would prefer to do this once
        we have more operations implemented, and the pattern is clearer.
      
      - The check operations (Checked<A>To<B>) should have some flags that would affect
        the kind of truncations that they can handle. E.g., if we know that a node produces
        a number, we can omit the oddball check in the CheckedTaggedToFloat64 lowering.
      
      - In future, we want the typer to reuse the logic from OperationTyper.
      
      BUG=v8:4583
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1921563002
      Cr-Commit-Position: refs/heads/master@{#36674}
      216bcf9f
    • jochen's avatar
      Remove has_valgrind.py - the bots now set this flag explicitly · a8f57df4
      jochen authored
      BUG=none
      R=machenbach@chromium.org
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/2034643002
      Cr-Commit-Position: refs/heads/master@{#36673}
      a8f57df4
    • Benedikt Meurer's avatar
      [turbofan] Eager frame state gone from JSCallFunction. · bea121aa
      Benedikt Meurer authored
      TBR=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/2038463003 .
      
      Cr-Commit-Position: refs/heads/master@{#36672}
      bea121aa