1. 31 Mar, 2016 2 commits
  2. 16 Feb, 2016 1 commit
    • ulan's avatar
      Add a generic remembered set class. · 4fdc19ae
      ulan authored
      This new class provides a unified interface for recording and iterating slots in store and slots buffers:
      
      RememberedSet<OLD_TO_NEW>::Insert(page, slot);
      RememberedSet<OLD_TO_OLD>::Insert(page, slot);
      
      RememberedSet<OLD_TO_NEW>::Iterate(heap, callback);
      RememberedSet<OLD_TO_OLD>::Iterate(heap, callback);
      
      After this change the store buffer is responsible only for collecting slots from the generated code.
      
      Subsequent CLs will remove the slots buffer.
      
      BUG=chromium:578883
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1683653002
      
      Cr-Commit-Position: refs/heads/master@{#34031}
      4fdc19ae
  3. 09 Feb, 2016 1 commit
  4. 08 Feb, 2016 1 commit
    • ulan's avatar
      New page local store buffer. · bb883395
      ulan authored
      This replaces the global remembered set with per-page remembered sets.
      
      Each page in the old space, map space, and large object space keeps track of
      the set of slots in the page pointing to the new space.
      
      The data structure for storing slot sets is a two-level bitmap, which allows
      us to remove the store buffer overflow and SCAN_ON_SCAVENGE logic.
      
      Design doc: https://goo.gl/sMKCf7
      
      BUG=chromium:578883
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1608583002
      
      Cr-Commit-Position: refs/heads/master@{#33806}
      bb883395
  5. 25 Jan, 2016 1 commit
    • mlippautz's avatar
      [heap] Cleanup: Remove WAS_SWEPT flag. · 5eff5420
      mlippautz authored
      - Completely rely on the concurrent sweeping state for SweepingCompleted()
      - Rename the state accordingly.
      
      CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_asan_rel,v8_linux64_tsan_rel,v8_mac64_asan_rel
      R=hpayer@chromium.org
      
      Review URL: https://codereview.chromium.org/1614953002
      
      Cr-Commit-Position: refs/heads/master@{#33490}
      5eff5420
  6. 15 Jan, 2016 1 commit
  7. 09 Dec, 2015 1 commit
  8. 04 Dec, 2015 1 commit
    • mlippautz's avatar
      [heap] Clean up stale store buffer entries for aborted pages. · 26fcd830
      mlippautz authored
      Fix the missed store buffer entries for live objects on aborted pages. Marking
      the page as scan_on_scavenge takes care of rebuilding the entries. Note that
      this requires an additional case in the rebuilding logic as we cannot iterate an
      aborted pages using the object layout, but rather have to use mark bits for
      this.
      
      BUG=chromium:524425, chromium:564498
      LOG=N
      
      Review URL: https://codereview.chromium.org/1497883003
      
      Cr-Commit-Position: refs/heads/master@{#32610}
      26fcd830
  9. 13 Nov, 2015 2 commits
    • 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
    • ishell's avatar
      Object's body descriptors refactoring. · 138eb324
      ishell authored
      1) Body descriptors moved to their own header files.
      2) Missing body descriptors added.
      3) Template versions of HeapObject::Iterate*() methods added.
      4) Body descriptors support new kind of queries: IsValidSlot(offset) which can be used for invalid slots filtering.
      
      This is a first step towards virtual and static visitors unification and support in-object properties in built-in (sub-)classes.
      
      Review URL: https://codereview.chromium.org/1440243002
      
      Cr-Commit-Position: refs/heads/master@{#31980}
      138eb324
  10. 29 Sep, 2015 1 commit
  11. 16 Sep, 2015 1 commit
  12. 27 Aug, 2015 1 commit
    • rmcilroy's avatar
      [interpreter] Add constant_pool() to BytecodeArray. · 69ce0f4d
      rmcilroy authored
      Adds a (currently unused) constant_pool() field to BytecodeArray objects.
      This field points to a FixedArray object which will be used to hold constants.
      
      The BytecodeArray is now a mixed values object type, with the
      kConstantPoolOffset object holding a tagged pointer, but the remainder of the
      object holding raw bytes (which could look like tagged pointers but are not).
      Modify the BytecodeArray GC visitors to deal with this and test that the
      field is migrated properly when evacuated.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1314953004
      
      Cr-Commit-Position: refs/heads/master@{#30404}
      69ce0f4d
  13. 25 Aug, 2015 1 commit
  14. 21 Aug, 2015 1 commit
  15. 20 Aug, 2015 1 commit
  16. 17 Aug, 2015 2 commits
  17. 07 Aug, 2015 1 commit
  18. 03 Aug, 2015 3 commits
  19. 23 Jul, 2015 1 commit
  20. 20 Jul, 2015 2 commits
  21. 16 Jun, 2015 1 commit
  22. 08 Jun, 2015 1 commit
  23. 01 Jun, 2015 1 commit
  24. 16 Apr, 2015 1 commit
  25. 10 Apr, 2015 1 commit
  26. 09 Apr, 2015 3 commits
  27. 07 Apr, 2015 1 commit
  28. 30 Mar, 2015 1 commit
  29. 28 Mar, 2015 1 commit
  30. 27 Mar, 2015 1 commit
    • ishell's avatar
      Revert of Reland "Filter invalid slots out from the SlotsBuffer after... · de018fbd
      ishell authored
      Revert of Reland "Filter invalid slots out from the SlotsBuffer after marking." (patchset #2 id:2 of https://codereview.chromium.org/1032833002/)
      
      Reason for revert:
      Reverting risky GC changes that block v8 roll.
      
      Original issue's description:
      > Reland "Filter invalid slots out from the SlotsBuffer after marking."
      >
      > > There are two reasons that could cause invalid slots appearance in SlotsBuffer:
      > > 1) If GC trims "tail" of an array for which it has already recorded a slots and then migrate another object to the "tail".
      > > 2) Tagged slot could become a double slot after migrating of an object to another map with "shifted" fields (for example as a result of generalizing immutable data property to a data field).
      >
      > > This CL also adds useful machinery that helps triggering incremental write barriers.
      >
      > > BUG=chromium:454297
      > > LOG=Y
      >
      > NOTRY=true
      >
      > Committed: https://crrev.com/f86aadd1d45c756467dff8e08a055b462d7a060b
      > Cr-Commit-Position: refs/heads/master@{#27433}
      
      TBR=machenbach@chromium.org,ulan@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1041593002
      
      Cr-Commit-Position: refs/heads/master@{#27491}
      de018fbd
  31. 25 Mar, 2015 1 commit
    • ulan's avatar
      Reland "Filter invalid slots out from the SlotsBuffer after marking." · f86aadd1
      ulan authored
      > There are two reasons that could cause invalid slots appearance in SlotsBuffer:
      > 1) If GC trims "tail" of an array for which it has already recorded a slots and then migrate another object to the "tail".
      > 2) Tagged slot could become a double slot after migrating of an object to another map with "shifted" fields (for example as a result of generalizing immutable data property to a data field).
      
      > This CL also adds useful machinery that helps triggering incremental write barriers.
      
      > BUG=chromium:454297
      > LOG=Y
      
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1032833002
      
      Cr-Commit-Position: refs/heads/master@{#27433}
      f86aadd1
  32. 24 Mar, 2015 1 commit