Index: src/store-buffer.h |
=================================================================== |
--- src/store-buffer.h (revision 10338) |
+++ src/store-buffer.h (working copy) |
@@ -85,8 +85,8 @@ |
static const int kStoreBufferSize = kStoreBufferOverflowBit; |
static const int kStoreBufferLength = kStoreBufferSize / sizeof(Address); |
static const int kOldStoreBufferLength = kStoreBufferLength * 16; |
- static const int kHashMapLengthLog2 = 12; |
- static const int kHashMapLength = 1 << kHashMapLengthLog2; |
+ static const int kHashSetLengthLog2 = 12; |
+ static const int kHashSetLength = 1 << kHashSetLengthLog2; |
void Compact(); |
@@ -148,13 +148,18 @@ |
bool may_move_store_buffer_entries_; |
VirtualMemory* virtual_memory_; |
- uintptr_t* hash_map_1_; |
- uintptr_t* hash_map_2_; |
+ // Two hash sets used for filtering. |
+ // If address is in the hash set then it is guaranteed to be in the |
+ // old part of the store buffer. |
+ uintptr_t* hash_set_1_; |
+ uintptr_t* hash_set_2_; |
+ bool hash_sets_are_empty_; |
+ |
+ void ClearFilteringHashSets(); |
+ |
void CheckForFullBuffer(); |
void Uniq(); |
- void ZapHashTables(); |
- bool HashTablesAreZapped(); |
void ExemptPopularPages(int prime_sample_step, int threshold); |
void FindPointersToNewSpaceInRegion(Address start, |