1. 14 Mar, 2016 1 commit
    • hpayer's avatar
      [heap] Black allocation. · ad51e8b1
      hpayer authored
      When black allocation is active, all objects allocated in old space are allocated black. Important: With that change, you cannot assume anymore that new objects are white right after their allocation. Currently, black allocation is enabled when incremental marking is started.
      
      This feature can be turned off via flag: --noblack-allocation
      
      BUG=chromium:561449
      LOG=n
      
      Review URL: https://codereview.chromium.org/1420423009
      
      Cr-Commit-Position: refs/heads/master@{#34743}
      ad51e8b1
  2. 11 Mar, 2016 5 commits
  3. 10 Mar, 2016 2 commits
  4. 09 Mar, 2016 3 commits
  5. 08 Mar, 2016 1 commit
  6. 07 Mar, 2016 4 commits
  7. 04 Mar, 2016 1 commit
  8. 03 Mar, 2016 1 commit
  9. 02 Mar, 2016 1 commit
    • verwaest's avatar
      Speed up the LookupIterator · 2608ecc7
      verwaest authored
      This introduces a new instance type and reorders the JSObject types so any type requiring special LookupIterator support can be identified with a single range check.
      
      In addition, it restructures the Next for better performance, avoiding unnecessary calls.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1751043002
      
      Cr-Commit-Position: refs/heads/master@{#34429}
      2608ecc7
  10. 01 Mar, 2016 1 commit
  11. 29 Feb, 2016 1 commit
    • bmeurer's avatar
      [stubs] Introduce a proper ToBooleanStub. · d1df58e8
      bmeurer authored
      Rename the existing (patching) ToBooleanStub to ToBooleanICStub to match
      our naming convention, and add a new TurboFan-powered ToBooleanStub,
      which just does the ToBoolean conversion without any runtime call or
      code patching, so we can use it for Ignition (and TurboFan).
      
      Drive-by-fix: Add an Oddball::to_boolean field similar to the ones we
      already have for to_string and to_number, so we don't need to actually
      dispatch on the concrete Oddball at all.
      
      R=epertoso@chromium.org, rmcilroy@chromium.org, yangguo@chromium.org
      
      Review URL: https://codereview.chromium.org/1744163002
      
      Cr-Commit-Position: refs/heads/master@{#34361}
      d1df58e8
  12. 26 Feb, 2016 1 commit
    • rmcilroy's avatar
      [Interpreter] Add support for cpu profiler logging. · cb29f9cd
      rmcilroy authored
      Adds support for cpu profiler logging to the interpreter. Modifies the
      the API to be passed AbstractCode objects instead of Code objects, and
      adds extra functions to AbstractCode which is required by log.cc and
      cpu-profiler.cc.
      
      The main change in sampler.cc is to determine if a stack frame is an
      interpreter stack frame, and if so, use the bytecode address as the pc
      for that frame. This allows sampling of bytecode functions. This
      requires adding support to SafeStackIterator to determine if a frame is
      interpreted, which we do by checking the PC against pre-stored addresses
      for the start and end of interpreter entry builtins.
      
      Also removes CodeDeleteEvents which are dead code and haven't
      been reported for some time.
      
      Still to do is tracking source positions which will be done in a
      followup CL.
      
      BUG=v8:4766
      LOG=N
      
      Review URL: https://codereview.chromium.org/1728593002
      
      Cr-Commit-Position: refs/heads/master@{#34321}
      cb29f9cd
  13. 25 Feb, 2016 2 commits
  14. 24 Feb, 2016 4 commits
  15. 23 Feb, 2016 1 commit
    • ulan's avatar
      Replace slots buffer with remembered set. · 2285a99e
      ulan authored
      Slots pointing to evacuation candidates are now recorded in the new RememberedSet<OLD_TO_OLD>.
      
      The remembered set is extended to support typed slots.
      
      During parallel evacuation all migration slots are recorded in local slots buffers.
      After evacuation all local slots are added to the remembered set.
      
      BUG=chromium:578883
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1703823002
      
      Cr-Commit-Position: refs/heads/master@{#34212}
      2285a99e
  16. 22 Feb, 2016 3 commits
    • 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
    • yangguo's avatar
      [interpreter, debugger] support debug breaks via bytecode array copy · e032a98d
      yangguo authored
      R=mstarzinger@chromium.org, rmcilroy@chromium.org
      BUG=v8:4690
      LOG=N
      
      Review URL: https://codereview.chromium.org/1703453002
      
      Cr-Commit-Position: refs/heads/master@{#34190}
      e032a98d
    • ulan's avatar
      Activate memory reducer for small heaps in background tabs. · b238864d
      ulan authored
      BUG=chromium:587574
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1705183003
      
      Cr-Commit-Position: refs/heads/master@{#34188}
      b238864d
  17. 20 Feb, 2016 1 commit
  18. 19 Feb, 2016 1 commit
    • rmcilroy's avatar
      [Interpreter] Enable runtime profiler support for Ignition. · b62bf1e6
      rmcilroy authored
      Adds a profiling counter to each BytecodeArray object, and adds
      code to Jump and Return bytecode handlers to update this
      counter by the size of the jump or the distance from the return
      to the start of the function. This is more accurate than fullcodegen's
      approach since it takes forward jumps into account as well as back-edges.
      
      Modifies RuntimeProfiler to track ticks for interpreted frames.
      Currently we use the SharedFunctionInfo::profiler_ticks() instead
      of adding another to tick field to avoid adding another field to
      BytecodeArray since SharedFunctionInfo::profiler_ticks() is only
      used by Crankshaft otherwise so we shouldn't need both for
      
      BUG=v8:4689
      LOG=N
      
      Review URL: https://codereview.chromium.org/1707693003
      
      Cr-Commit-Position: refs/heads/master@{#34166}
      b62bf1e6
  19. 18 Feb, 2016 2 commits
  20. 17 Feb, 2016 2 commits
  21. 16 Feb, 2016 2 commits