1. 24 Feb, 2016 6 commits
    • Miran.Karic's avatar
      MIPS: Adjust code after JALR to JAL optimization removal · e3453a86
      Miran.Karic authored
      Now that JALR to JAL optimization is removed, the value of the constant
      kInstructionsFor32BitConstant and comments are adjusted accordingly.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1690133004
      
      Cr-Commit-Position: refs/heads/master@{#34235}
      e3453a86
    • mattloring's avatar
      Unsampling for the sampling heap profiler · 50537bad
      mattloring authored
      Implements poisson unsampling. A poisson process is used to determine
      which samples to collect based on a sample rate. Unsampling will
      approximate the true number of allocations at each site taking into
      account that smaller allocations are less likley to be sampled.
      
      This work was originally being done in the agent that
      consumes profiles but it is more efficient to do it here
      and individual consumers of the API should not have to
      worry about the mathematical details of the sampling
      process.
      
      R=ofrobots@google.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1706343002
      
      Cr-Commit-Position: refs/heads/master@{#34234}
      50537bad
    • bradnelson's avatar
      Allow bitwise operators to convert from intish to int in heap ops. · a5296768
      bradnelson authored
      We previously supported use of bitwise operations to convert
      from intish to int, but use of kAsmInt in some places and kAsmIntQ
      in others prevents this from working with heap accesses.
      Switch to use kAsmIntQ where appropriate (even though intish_ != 0
      in principle captures the superset of these cases),
      as it's more conservative (and uses types.h better).
      
      BUG= https://code.google.com/p/v8/issues/detail?id=4203
      TEST=mjsunit/asm-wasm
      R=aseemgarg@chromium.org,titzer@chromium.org
      LOG=N
      
      Review URL: https://codereview.chromium.org/1731603002
      
      Cr-Commit-Position: refs/heads/master@{#34233}
      a5296768
    • Michael Achenbach's avatar
      Whitespace change to trigger bots. · 5c21fa8e
      Michael Achenbach authored
      Cr-Commit-Position: refs/heads/master@{#34232}
      5c21fa8e
    • zhengxing.li's avatar
      X87: [fullcodegen] Implement operand stack depth tracking. · 9458a6e4
      zhengxing.li authored
        port 38915ed7 (r34211)
      
        original commit message:
        This implements a mechanism to track the exact depth of the operand
        stack in full-codegen for every sub-expression visitation. So far we
        only tracked the depth at statement level, but not at expression level.
        With the introduction of do-expressions it will be possible to construct
        local control flow (i.e. break, continue and friends) that target labels
        at an arbitrary operand stack depth, making this tracking a prerequisite
        for full do-expression support.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1728953003
      
      Cr-Commit-Position: refs/heads/master@{#34231}
      9458a6e4
    • littledan's avatar
      Intl: Use private symbols to memoize bound functions · a59f62fc
      littledan authored
      The Intl object used to keep around functions which are bound to the
      receiver and memoized in the object (as required by the ECMA-402 spec)
      in ordinary properties with names like __boundformat__. This patch
      instead stores those methods in private symbol properties, so they are
      not exposed to users. A search in GitHub didn't find any uses of
      __boundformat__ (whereas the same search found plenty of usages of
      other V8 Intl features), so I think this should be fine in terms of
      web compatibility.
      
      BUG=v8:3785
      R=adamk
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1728823002
      
      Cr-Commit-Position: refs/heads/master@{#34230}
      a59f62fc
  2. 23 Feb, 2016 29 commits
  3. 22 Feb, 2016 5 commits
    • littledan's avatar
      Remove the Proxy enumerate trap · 579c0107
      littledan authored
      In ES2016, the Proxy enumerate trap is removed. This patch changes
      for-in iteration on Proxies to use the ownKeys trap. Due to the clean
      organization of that code, the patch basically consists of deletions.
      
      R=adamk
      LOG=Y
      BUG=v8:4768
      
      Review URL: https://codereview.chromium.org/1717893002
      
      Cr-Commit-Position: refs/heads/master@{#34200}
      579c0107
    • littledan's avatar
      Optimize @@species based on a global 'protector' cell · 7033ae51
      littledan authored
      This patch makes ArraySpeciesCreate fast in V8 by avoiding two property reads
      when the following conditions are met:
      - No Array instance has had its __proto__ reset
      - No Array instance has had a constructor property defined
      - Array.prototype has not had its constructor changed
      - Array[Symbol.species] has not been reset
      
      For subclasses of Array, or for conditions where one of these assumptions is
      violated, the full lookup of species is done according to the ArraySpeciesCreate
      algorithm. Although this is a "performance cliff", it does not come up in the
      expected typical use case of @@species (Array subclassing), so it is hoped that
      this can form a good start. Array subclasses will incur the slowness of looking
      up @@species, but their use won't slow down invocations of, for example,
      Array.prototype.slice on Array base class instances.
      
      Possible future optimizations:
      - For the fallback case where the assumptions don't hold, optimize the two
        property lookups.
      - For Array.prototype.slice and Array.prototype.splice, even if the full lookup
        of @@species needs to take place, we still could take the rest of the C++
        fastpath. However, to do this correctly requires changing the calling convention
        from C++ to JS to pass the @@species out, so it is not attempted in this patch.
      
      With this patch, microbenchmarks of Array.prototype.slice do not suffer a
      noticeable performance regression, unlike their previous 2.5x penalty.
      
      TBR=hpayer@chromium.org
      
      Review URL: https://codereview.chromium.org/1689733002
      
      Cr-Commit-Position: refs/heads/master@{#34199}
      7033ae51
    • mbrandy's avatar
      PPC: [interpreter, debugger] support debug breaks via bytecode array copy · d15d2cf2
      mbrandy authored
      Port e032a98d
      
      R=yangguo@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:4690
      LOG=N
      
      Review URL: https://codereview.chromium.org/1721673003
      
      Cr-Commit-Position: refs/heads/master@{#34198}
      d15d2cf2
    • mbrandy's avatar
      PPC: Cleanup CRegister definition. · aadd792d
      mbrandy authored
      R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1716293002
      
      Cr-Commit-Position: refs/heads/master@{#34197}
      aadd792d
    • littledan's avatar
      Remove Reflect.enumerate · 0b53b7d3
      littledan authored
      The Proxy enumerate trap and Reflect.enumerate are removed from the
      ES2016 draft specification. This patch removes the Reflect.enumerate
      function, and a follow-on patch will be responsible for the Proxy
      trap changes.
      
      R=adamk
      LOG=Y
      BUG=v8:4768
      
      Review URL: https://codereview.chromium.org/1721453002
      
      Cr-Commit-Position: refs/heads/master@{#34196}
      0b53b7d3