28 #ifndef V8_STORE_BUFFER_H_
29 #define V8_STORE_BUFFER_H_
110 old_top_ =
reinterpret_cast<Address*
>(top);
128 bool CellIsInStoreBuffer(
Address cell);
148 bool old_buffer_is_sorted_;
149 bool old_buffer_is_filtered_;
154 bool store_buffer_rebuilding_enabled_;
156 bool may_move_store_buffer_entries_;
163 uintptr_t* hash_set_1_;
164 uintptr_t* hash_set_2_;
165 bool hash_sets_are_empty_;
167 void ClearFilteringHashSets();
169 bool SpaceAvailable(intptr_t space_needed);
171 void ExemptPopularPages(
int prime_sample_step,
int threshold);
174 inline void ClearDeadObject(
HeapObject *
object);
178 void FindPointersToNewSpaceInRegion(
Address start,
188 void IteratePointersOnPage(
194 void FindPointersToNewSpaceInMaps(
200 void FindPointersToNewSpaceInMapsRegion(
206 void FindPointersToNewSpaceOnPage(
231 : store_buffer_(store_buffer),
232 stored_state_(store_buffer->store_buffer_rebuilding_enabled_),
233 stored_callback_(store_buffer->callback_) {
234 store_buffer_->store_buffer_rebuilding_enabled_ =
true;
235 store_buffer_->callback_ = callback;
240 store_buffer_->callback_ = stored_callback_;
241 store_buffer_->store_buffer_rebuilding_enabled_ = stored_state_;
254 : store_buffer_(store_buffer),
255 stored_state_(store_buffer->may_move_store_buffer_entries_) {
256 store_buffer_->may_move_store_buffer_entries_ =
false;
260 store_buffer_->may_move_store_buffer_entries_ = stored_state_;
270 #endif // V8_STORE_BUFFER_H_
enable upcoming ES6 features enable harmony block scoping enable harmony enable harmony proxies enable harmony generators enable harmony numeric enable harmony string enable harmony math functions harmony_scoping harmony_symbols harmony_collections harmony_iteration harmony_strings harmony_scoping harmony_maths tracks arrays with only smi values Optimize object Array DOM strings and string pretenure call new trace pretenuring decisions of HAllocate instructions track fields with only smi values track fields with heap values track_fields track_fields Enables optimizations which favor memory size over execution speed use string slices optimization filter maximum number of GVN fix point iterations use function inlining use allocation folding eliminate write barriers targeting allocations in optimized code maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining crankshaft harvests type feedback from stub cache trace check elimination phase hydrogen tracing filter NULL
static const int kHashSetLength
void(* ObjectSlotCallback)(HeapObject **from, HeapObject *to)
bool old_buffer_is_filtered()
void SetTop(Object ***top)
#define ASSERT(condition)
static void StoreBufferOverflow(Isolate *isolate)
const int kPointerSizeLog2
void(StoreBuffer::* RegionCallback)(Address start, Address end, ObjectSlotCallback slot_callback, bool clear_maps)
void(* StoreBufferCallback)(Heap *heap, MemoryChunk *page, StoreBufferEvent event)
void IteratePointersToNewSpaceAndClearMaps(ObjectSlotCallback callback)
kInstanceClassNameOffset flag
static const int kStoreBufferLength
void IteratePointersToNewSpace(ObjectSlotCallback callback)
static const int kStoreBufferOverflowBit
static const int kStoreBufferSize
bool old_buffer_is_sorted()
void EnsureSpace(intptr_t space_needed)
DontMoveStoreBufferEntriesScope(StoreBuffer *store_buffer)
bool PrepareForIteration()
~DontMoveStoreBufferEntriesScope()
~StoreBufferRebuildScope()
static const int kOldStoreBufferLength
StoreBufferRebuildScope(Heap *heap, StoreBuffer *store_buffer, StoreBufferCallback callback)
static const int kHashSetLengthLog2
void EnterDirectlyIntoStoreBuffer(Address addr)