Commit ac3c4fcf authored by Dominik Inführ's avatar Dominik Inführ Committed by Commit Bot

[heap] Disable old-to-new invalidation

Disable invalidation of old-to-new slots for now. Invalidation doesn't
match behavior of clearing slots directly in the remembered set.

Bug: chromium:1004365
Change-Id: Ib6a21457827faafa75be88720c214e5ec483c71b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1813028Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63890}
parent 337611a4
...@@ -3406,11 +3406,6 @@ void Heap::NotifyObjectLayoutChange( ...@@ -3406,11 +3406,6 @@ void Heap::NotifyObjectLayoutChange(
->RegisterObjectWithInvalidatedSlots<OLD_TO_OLD>(object); ->RegisterObjectWithInvalidatedSlots<OLD_TO_OLD>(object);
} }
} }
if (invalidate_recorded_slots == InvalidateRecordedSlots::kYes &&
MayContainRecordedSlots(object)) {
MemoryChunk::FromHeapObject(object)
->RegisterObjectWithInvalidatedSlots<OLD_TO_NEW>(object);
}
#ifdef VERIFY_HEAP #ifdef VERIFY_HEAP
if (FLAG_verify_heap) { if (FLAG_verify_heap) {
DCHECK(pending_layout_change_object_.is_null()); DCHECK(pending_layout_change_object_.is_null());
......
...@@ -3428,11 +3428,7 @@ class RememberedSetUpdatingItem : public UpdatingItem { ...@@ -3428,11 +3428,7 @@ class RememberedSetUpdatingItem : public UpdatingItem {
SlotSet::PREFREE_EMPTY_BUCKETS); SlotSet::PREFREE_EMPTY_BUCKETS);
} }
if (chunk_->invalidated_slots<OLD_TO_NEW>() != nullptr) { DCHECK_NULL(chunk_->invalidated_slots<OLD_TO_NEW>());
// The invalidated slots are not needed after old-to-new slots were
// processed.
chunk_->ReleaseInvalidatedSlots<OLD_TO_NEW>();
}
if ((updating_mode_ == RememberedSetUpdatingMode::ALL) && if ((updating_mode_ == RememberedSetUpdatingMode::ALL) &&
(chunk_->slot_set<OLD_TO_OLD, AccessMode::NON_ATOMIC>() != nullptr)) { (chunk_->slot_set<OLD_TO_OLD, AccessMode::NON_ATOMIC>() != nullptr)) {
......
...@@ -458,11 +458,7 @@ void Scavenger::ScavengePage(MemoryChunk* page) { ...@@ -458,11 +458,7 @@ void Scavenger::ScavengePage(MemoryChunk* page) {
}, },
SlotSet::KEEP_EMPTY_BUCKETS); SlotSet::KEEP_EMPTY_BUCKETS);
if (page->invalidated_slots<OLD_TO_NEW>() != nullptr) { DCHECK_NULL(page->invalidated_slots<OLD_TO_NEW>());
// The invalidated slots are not needed after old-to-new slots were
// processed.
page->ReleaseInvalidatedSlots<OLD_TO_NEW>();
}
RememberedSet<OLD_TO_NEW>::IterateTyped( RememberedSet<OLD_TO_NEW>::IterateTyped(
page, [=](SlotType type, Address addr) { page, [=](SlotType type, Address addr) {
......
...@@ -1555,12 +1555,6 @@ void MemoryChunk::InvalidateRecordedSlots(HeapObject object) { ...@@ -1555,12 +1555,6 @@ void MemoryChunk::InvalidateRecordedSlots(HeapObject object) {
// concurrent markers might insert slots concurrently. // concurrent markers might insert slots concurrently.
RegisterObjectWithInvalidatedSlots<OLD_TO_OLD>(object); RegisterObjectWithInvalidatedSlots<OLD_TO_OLD>(object);
} }
heap()->MoveStoreBufferEntriesToRememberedSet();
if (slot_set_[OLD_TO_NEW] != nullptr) {
RegisterObjectWithInvalidatedSlots<OLD_TO_NEW>(object);
}
} }
template bool MemoryChunk::RegisteredObjectWithInvalidatedSlots<OLD_TO_NEW>( template bool MemoryChunk::RegisteredObjectWithInvalidatedSlots<OLD_TO_NEW>(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment