v8
3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
|
#include <store-buffer.h>
Public Member Functions | |
StoreBuffer (Heap *heap) | |
Address | TopAddress () |
void | SetUp () |
void | TearDown () |
void | Mark (Address addr) |
void | EnterDirectlyIntoStoreBuffer (Address addr) |
void | IteratePointersToNewSpace (ObjectSlotCallback callback) |
void | IteratePointersToNewSpaceAndClearMaps (ObjectSlotCallback callback) |
void | Compact () |
void | GCPrologue () |
void | GCEpilogue () |
Object *** | Limit () |
Object *** | Start () |
Object *** | Top () |
void | SetTop (Object ***top) |
bool | old_buffer_is_sorted () |
bool | old_buffer_is_filtered () |
void | SortUniq () |
void | EnsureSpace (intptr_t space_needed) |
void | Verify () |
bool | PrepareForIteration () |
void | Filter (int flag) |
Static Public Member Functions | |
static void | StoreBufferOverflow (Isolate *isolate) |
Static Public Attributes | |
static const int | kStoreBufferOverflowBit = 1 << (14 + kPointerSizeLog2) |
static const int | kStoreBufferSize = kStoreBufferOverflowBit |
static const int | kStoreBufferLength = kStoreBufferSize / sizeof(Address) |
static const int | kOldStoreBufferLength = kStoreBufferLength * 16 |
static const int | kHashSetLengthLog2 = 12 |
static const int | kHashSetLength = 1 << kHashSetLengthLog2 |
Friends | |
class | StoreBufferRebuildScope |
class | DontMoveStoreBufferEntriesScope |
Definition at line 53 of file store-buffer.h.
|
explicit |
Definition at line 39 of file store-buffer.cc.
void Compact | ( | ) |
Definition at line 687 of file store-buffer.cc.
References ASSERT, Heap::cell_space(), Heap::code_space(), PagedSpace::Contains(), Isolate::counters(), StoreBuffer::EnsureSpace(), Heap::isolate(), StoreBuffer::kHashSetLength, StoreBuffer::kHashSetLengthLog2, Page::kPageAlignmentMask, v8::internal::kPointerSizeLog2, Heap::old_data_space(), and Heap::public_set_store_buffer_top().
Referenced by StoreBuffer::EnsureSpace(), Heap::FreeQueuedChunks(), StoreBuffer::Mark(), StoreBuffer::PrepareForIteration(), StoreBuffer::SortUniq(), and StoreBuffer::StoreBufferOverflow().
void EnsureSpace | ( | intptr_t | space_needed | ) |
Definition at line 151 of file store-buffer.cc.
References ASSERT, CHECK, VirtualMemory::Commit(), StoreBuffer::Compact(), StoreBuffer::Filter(), Page::kPageSize, v8::internal::kPointerSize, v8::internal::NULL, MemoryChunk::scan_on_scavenge(), MemoryChunk::SCAN_ON_SCAVENGE, and UNREACHABLE.
Referenced by StoreBufferRebuilder::Callback(), and StoreBuffer::Compact().
|
inline |
Definition at line 57 of file store-buffer-inl.h.
References ASSERT, Heap::cell_space(), Heap::code_space(), PagedSpace::Contains(), NewSpace::Contains(), MemoryChunk::FromAnyPointerAddress(), v8::internal::kStoreBufferFullEvent, Heap::new_space(), v8::internal::NULL, Heap::old_data_space(), and SLOW_ASSERT.
Referenced by Heap::IterateAndMarkPointersToFromSpace().
void Filter | ( | int | flag | ) |
Definition at line 241 of file store-buffer.cc.
References MemoryChunk::Contains(), MemoryChunk::FromAnyPointerAddress(), MemoryChunk::IsFlagSet(), and v8::internal::NULL.
Referenced by StoreBuffer::EnsureSpace(), Heap::FreeQueuedChunks(), and StoreBuffer::PrepareForIteration().
void GCEpilogue | ( | ) |
Definition at line 411 of file store-buffer.cc.
References StoreBuffer::Verify().
void GCPrologue | ( | ) |
Definition at line 351 of file store-buffer.cc.
void IteratePointersToNewSpace | ( | ObjectSlotCallback | callback | ) |
Definition at line 615 of file store-buffer.cc.
Referenced by StoreBuffer::IteratePointersToNewSpaceAndClearMaps().
void IteratePointersToNewSpaceAndClearMaps | ( | ObjectSlotCallback | callback | ) |
Definition at line 620 of file store-buffer.cc.
References StoreBuffer::IteratePointersToNewSpace().
|
inline |
Definition at line 104 of file store-buffer.h.
Referenced by StoreBufferRebuilder::Callback(), and StoreBuffer::SetTop().
|
inline |
Definition at line 41 of file store-buffer-inl.h.
References ASSERT, Heap::cell_space(), Heap::code_space(), StoreBuffer::Compact(), PagedSpace::Contains(), StoreBuffer::kStoreBufferOverflowBit, Heap::old_data_space(), and Heap::public_set_store_buffer_top().
Referenced by MarkCompactCollector::MigrateObject().
|
inline |
Definition at line 114 of file store-buffer.h.
|
inline |
Definition at line 113 of file store-buffer.h.
bool PrepareForIteration | ( | ) |
Definition at line 279 of file store-buffer.cc.
References StoreBuffer::Compact(), StoreBuffer::Filter(), v8::internal::NULL, MemoryChunk::scan_on_scavenge(), and MemoryChunk::SCAN_ON_SCAVENGE.
|
inline |
Definition at line 107 of file store-buffer.h.
References ASSERT, StoreBuffer::Limit(), and StoreBuffer::Start().
Referenced by StoreBufferRebuilder::Callback().
void SetUp | ( | ) |
Definition at line 60 of file store-buffer.cc.
References VirtualMemory::address(), ASSERT, CHECK, VirtualMemory::Commit(), OS::CommitPageSize(), StoreBuffer::kHashSetLength, StoreBuffer::kOldStoreBufferLength, v8::internal::kPointerSize, StoreBuffer::kStoreBufferOverflowBit, StoreBuffer::kStoreBufferSize, Heap::public_set_store_buffer_top(), v8::internal::RoundUp(), VirtualMemory::size(), and v8::internal::USE().
Referenced by Heap::SetUp().
void SortUniq | ( | ) |
Definition at line 265 of file store-buffer.cc.
References StoreBuffer::Compact().
|
inline |
Definition at line 105 of file store-buffer.h.
Referenced by StoreBuffer::SetTop().
|
static |
Definition at line 122 of file store-buffer.cc.
References StoreBuffer::Compact(), Isolate::counters(), Isolate::heap(), and Heap::store_buffer().
void TearDown | ( | ) |
Definition at line 111 of file store-buffer.cc.
References v8::internal::NULL, and Heap::public_set_store_buffer_top().
Referenced by Heap::TearDown().
|
inline |
Definition at line 106 of file store-buffer.h.
Referenced by StoreBufferRebuilder::Callback().
|
inline |
Definition at line 36 of file store-buffer-inl.h.
References Heap::store_buffer_top_address().
void Verify | ( | ) |
Definition at line 400 of file store-buffer.cc.
References Heap::lo_space(), Heap::map_space(), and Heap::old_pointer_space().
Referenced by StoreBuffer::GCEpilogue().
|
friend |
Definition at line 222 of file store-buffer.h.
|
friend |
Definition at line 221 of file store-buffer.h.
|
static |
Definition at line 97 of file store-buffer.h.
Referenced by StoreBuffer::Compact(), and StoreBuffer::SetUp().
|
static |
Definition at line 96 of file store-buffer.h.
Referenced by StoreBuffer::Compact().
|
static |
Definition at line 95 of file store-buffer.h.
Referenced by StoreBuffer::SetUp().
|
static |
Definition at line 94 of file store-buffer.h.
|
static |
Definition at line 92 of file store-buffer.h.
Referenced by StoreBuffer::Mark(), and StoreBuffer::SetUp().
|
static |
Definition at line 93 of file store-buffer.h.
Referenced by StoreBufferRebuilder::Callback(), and StoreBuffer::SetUp().