1. 21 Jan, 2016 1 commit
  2. 14 Jan, 2016 1 commit
  3. 12 Jan, 2016 1 commit
    • mlippautz's avatar
      [heap] Use HashMap as scratchpad backing store · 55422bdd
      mlippautz authored
      We use a scratchpad to remember visited allocation sites for post processing
      (making tenure decisions). The previous implementation used a rooted FixedArray
      with constant length (256) to remember all sites. Updating the scratchpad is a
      bottleneck in any parallel/concurrent implementation of newspace evacuation.
      
      The new implementation uses a HashMap with allocation sites as keys and
      temporary counts as values. During evacuation we collect a local hashmap of
      visited allocation sites. Upon merging the local hashmap back into a global one
      we update potential forward pointers of compacted allocation sites.  The
      scavenger can directly enter its entries into the global hashmap. Note that the
      actual memento found count is still kept on the AllocationSite as it needs to
      survive scavenges and full GCs.
      
      BUG=chromium:524425
      LOG=N
      R=hpayer@chromium.org
      
      Review URL: https://codereview.chromium.org/1535723002
      
      Cr-Commit-Position: refs/heads/master@{#33233}
      55422bdd
  4. 11 Jan, 2016 1 commit
  5. 18 Dec, 2015 1 commit
  6. 11 Dec, 2015 3 commits
  7. 09 Dec, 2015 3 commits
  8. 08 Dec, 2015 1 commit
    • ulan's avatar
      Optimize clearing of map transitions. · 8c376b46
      ulan authored
      Instead of iterating the whole map space to find dead transitions,
      look in weak cell list and transition array list.
      
      Simple transitions are in the weak cell list.
      
      Full transitions are in the transitions array list.
      
      BUG=chromium:554488
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1488593003
      
      Cr-Commit-Position: refs/heads/master@{#32684}
      8c376b46
  9. 04 Dec, 2015 2 commits
  10. 03 Dec, 2015 3 commits
  11. 02 Dec, 2015 5 commits
  12. 01 Dec, 2015 4 commits
  13. 30 Nov, 2015 2 commits
  14. 27 Nov, 2015 3 commits
  15. 26 Nov, 2015 1 commit
  16. 25 Nov, 2015 2 commits
  17. 24 Nov, 2015 1 commit
  18. 17 Nov, 2015 1 commit
    • ulan's avatar
      Optimize MarkCompactCollector::ClearNonLiveReferences. · ed357f96
      ulan authored
      This splits the work to be done for dead and life maps
      and avoids unnecessary operations in the hot loop.
      
      Results for v8.infinite_scroll:
      
      Before:
      nonlive_refs
        len: 93
        min: 0.0
        max: 6.3
        avg: 1.35268817204
        [0,5[: 91
        [5,10[: 2
      
      After:
      nonlive_refs
        len: 91
        min: 0.0
        max: 4.2
        avg: 0.968131868132
        [0,5[: 91
      
      BUG=chromium:554488
      LOG=no
      
      Review URL: https://codereview.chromium.org/1441633002
      
      Cr-Commit-Position: refs/heads/master@{#32042}
      ed357f96
  19. 16 Nov, 2015 1 commit
    • mlippautz's avatar
      [heap] Use cancelable tasks during compaction. · 60e8ae51
      mlippautz authored
      This way we can properly cancel them on the main thread in case they never get
      scheduled by the platform.
      
      BUG=chromium:524425
      LOG=N
      CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg;tryserver.v8:v8_linux_gc_stress_dbg;tryserver.v8:v8_mac_gc_stress_dbg;tryserver.v8:v8_linux64_msan_rel;tryserver.v8:v8_linux64_tsan_rel;tryserver.v8:v8_mac64_asan_rel
      
      Review URL: https://codereview.chromium.org/1446523003
      
      Cr-Commit-Position: refs/heads/master@{#32007}
      60e8ae51
  20. 13 Nov, 2015 1 commit
    • ishell's avatar
      Avoid manual object's body traversal in GC. · 5ba9ea18
      ishell authored
      This CL introduces the following visitors:
      1) RecordMigratedSlotVisitor which simplifies MarkCompactCollector::MigrateObject().
      2) IteratePointersToFromSpaceVisitor which simplifies Heap::IteratePointersToFromSpace().
      3) FindPointersToNewSpaceVisitor which simplifies StoreBuffer::IteratePointersToNewSpace().
      
      These changes make the object's body descriptors the one and only place that knows how to traverse the object.
      
      Review URL: https://codereview.chromium.org/1441453002
      
      Cr-Commit-Position: refs/heads/master@{#31992}
      5ba9ea18
  21. 09 Nov, 2015 1 commit
    • mstarzinger's avatar
      [heap] Separate out optimized code map processing. · 087513d6
      mstarzinger authored
      This separates the post-processing step for optimized code maps out of
      the CodeFlusher. It uses the complete SharedFunctionInfo::Iterator to
      visit all candidates instead of gathering candidates during marking.
      
      Gathering candidates during marking no longer makes sense, now that the
      majority of SharedFunctionInfo objects will hold such an optimized code
      map. Also it reduces complexity of the implementation. Also conflating
      this mechanism with "code flushing" was confusing.
      
      This reverts commit 7f1fb29f.
      
      R=ulan@chromium.org
      
      Review URL: https://codereview.chromium.org/1418453008
      
      Cr-Commit-Position: refs/heads/master@{#31876}
      087513d6
  22. 05 Nov, 2015 1 commit
    • mstarzinger's avatar
      Revert of [heap] Separate out optimized code map processing. (patchset #2... · 7f1fb29f
      mstarzinger authored
      Revert of [heap] Separate out optimized code map processing. (patchset #2 id:20001 of https://codereview.chromium.org/1421903012/ )
      
      Reason for revert:
      Causes GC-Stress failures.
      
      Original issue's description:
      > [heap] Separate out optimized code map processing.
      >
      > This separates the post-processing step for optimized code maps out of
      > the CodeFlusher. It uses the complete SharedFunctionInfo::Iterator to
      > visit all candidates instead of gathering candidates during marking.
      >
      > Gathering candidates during marking no longer makes sense, now that the
      > majority of SharedFunctionInfo objects will hold such an optimized code
      > map. Also it reduces complexity of the implementation. Also conflating
      > this mechanism with "code flushing" was confusing.
      >
      > This reverts commit b6644e84.
      >
      > R=ulan@chromium.org
      >
      > Committed: https://crrev.com/bb7a5eb2d89bae25f2b5ecb9515669f0ac73c111
      > Cr-Commit-Position: refs/heads/master@{#31836}
      
      TBR=ulan@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1412063012
      
      Cr-Commit-Position: refs/heads/master@{#31837}
      7f1fb29f