Commit 226652e5 authored by Ulan Degenbaev's avatar Ulan Degenbaev Committed by Commit Bot

[heap] Remove/resolve TODOs

Change-Id: Ib6036e38a145153e865059f1aeccc5cdc8c9e840
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848471Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74158}
parent 0241041e
...@@ -2966,8 +2966,6 @@ void* Heap::AllocateExternalBackingStore( ...@@ -2966,8 +2966,6 @@ void* Heap::AllocateExternalBackingStore(
GarbageCollectionReason::kExternalMemoryPressure); GarbageCollectionReason::kExternalMemoryPressure);
} }
} }
// TODO(ulan): Perform GCs proactively based on the byte_length and
// the current external backing store counters.
void* result = allocate(byte_length); void* result = allocate(byte_length);
if (result) return result; if (result) return result;
if (!always_allocate()) { if (!always_allocate()) {
...@@ -3061,8 +3059,7 @@ void VerifyNoNeedToClearSlots(Address start, Address end) { ...@@ -3061,8 +3059,7 @@ void VerifyNoNeedToClearSlots(Address start, Address end) {
BasicMemoryChunk* basic_chunk = BasicMemoryChunk::FromAddress(start); BasicMemoryChunk* basic_chunk = BasicMemoryChunk::FromAddress(start);
if (basic_chunk->InReadOnlySpace()) return; if (basic_chunk->InReadOnlySpace()) return;
MemoryChunk* chunk = static_cast<MemoryChunk*>(basic_chunk); MemoryChunk* chunk = static_cast<MemoryChunk*>(basic_chunk);
// TODO(ulan): Support verification of large pages. if (chunk->InYoungGeneration()) return;
if (chunk->InYoungGeneration() || chunk->IsLargePage()) return;
BaseSpace* space = chunk->owner(); BaseSpace* space = chunk->owner();
space->heap()->VerifySlotRangeHasNoRecordedSlots(start, end); space->heap()->VerifySlotRangeHasNoRecordedSlots(start, end);
} }
...@@ -5955,7 +5952,6 @@ void Heap::VerifyClearedSlot(HeapObject object, ObjectSlot slot) { ...@@ -5955,7 +5952,6 @@ void Heap::VerifyClearedSlot(HeapObject object, ObjectSlot slot) {
void Heap::VerifySlotRangeHasNoRecordedSlots(Address start, Address end) { void Heap::VerifySlotRangeHasNoRecordedSlots(Address start, Address end) {
#ifndef V8_DISABLE_WRITE_BARRIERS #ifndef V8_DISABLE_WRITE_BARRIERS
Page* page = Page::FromAddress(start); Page* page = Page::FromAddress(start);
DCHECK(!page->IsLargePage());
DCHECK(!page->InYoungGeneration()); DCHECK(!page->InYoungGeneration());
RememberedSet<OLD_TO_NEW>::CheckNoneInRange(page, start, end); RememberedSet<OLD_TO_NEW>::CheckNoneInRange(page, start, end);
#endif #endif
......
...@@ -2663,7 +2663,6 @@ T ForwardingAddress(T heap_obj) { ...@@ -2663,7 +2663,6 @@ T ForwardingAddress(T heap_obj) {
} else if (Heap::InFromPage(heap_obj)) { } else if (Heap::InFromPage(heap_obj)) {
return T(); return T();
} else { } else {
// TODO(ulan): Support minor mark-compactor here.
return heap_obj; return heap_obj;
} }
} }
......
...@@ -4558,7 +4558,8 @@ void MinorMarkCompactCollector::CollectGarbage() { ...@@ -4558,7 +4558,8 @@ void MinorMarkCompactCollector::CollectGarbage() {
} }
// Since we promote all surviving large objects immediatelly, all remaining // Since we promote all surviving large objects immediatelly, all remaining
// large objects must be dead. // large objects must be dead.
// TODO(ulan): Don't free all as soon as we have an intermediate generation. // TODO(v8:11685): Don't free all as soon as we have an intermediate
// generation.
heap()->new_lo_space()->FreeDeadObjects([](HeapObject) { return true; }); heap()->new_lo_space()->FreeDeadObjects([](HeapObject) { return true; });
} }
......
...@@ -351,9 +351,6 @@ int Sweeper::RawSweep( ...@@ -351,9 +351,6 @@ int Sweeper::RawSweep(
size_t live_bytes = 0; size_t live_bytes = 0;
size_t max_freed_bytes = 0; size_t max_freed_bytes = 0;
// TODO(ulan): we don't have to clear type old-to-old slots in code space
// because the concurrent marker doesn't mark code objects. This requires
// the write barrier for code objects to check the color of the code object.
bool non_empty_typed_slots = p->typed_slot_set<OLD_TO_NEW>() != nullptr || bool non_empty_typed_slots = p->typed_slot_set<OLD_TO_NEW>() != nullptr ||
p->typed_slot_set<OLD_TO_OLD>() != nullptr; p->typed_slot_set<OLD_TO_OLD>() != nullptr;
......
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