| Index: src/heap/heap.h
|
| diff --git a/src/heap/heap.h b/src/heap/heap.h
|
| index 4994f0d2595dcec1847d9204d2548012eecf2529..9017950cbd27c92561d454bd6c6b82991885ac9b 100644
|
| --- a/src/heap/heap.h
|
| +++ b/src/heap/heap.h
|
| @@ -324,10 +324,13 @@ class HeapObjectsFilter;
|
| class HeapStats;
|
| class HistogramTimer;
|
| class Isolate;
|
| +class MemoryAllocator;
|
| class MemoryReducer;
|
| class ObjectStats;
|
| +class PagedSpace;
|
| class Scavenger;
|
| class ScavengeJob;
|
| +class Space;
|
| class StoreBuffer;
|
| class WeakObjectRetainer;
|
|
|
| @@ -589,19 +592,10 @@ class Heap {
|
|
|
| bool always_allocate() { return always_allocate_scope_count_.Value() != 0; }
|
|
|
| - Address* NewSpaceAllocationTopAddress() {
|
| - return new_space_.allocation_top_address();
|
| - }
|
| - Address* NewSpaceAllocationLimitAddress() {
|
| - return new_space_.allocation_limit_address();
|
| - }
|
| -
|
| - Address* OldSpaceAllocationTopAddress() {
|
| - return old_space_->allocation_top_address();
|
| - }
|
| - Address* OldSpaceAllocationLimitAddress() {
|
| - return old_space_->allocation_limit_address();
|
| - }
|
| + inline Address* NewSpaceAllocationTopAddress();
|
| + inline Address* NewSpaceAllocationLimitAddress();
|
| + inline Address* OldSpaceAllocationTopAddress();
|
| + inline Address* OldSpaceAllocationLimitAddress();
|
|
|
| bool CanExpandOldGeneration(int size) {
|
| if (force_oom_) return false;
|
| @@ -730,17 +724,7 @@ class Heap {
|
| // Check new space expansion criteria and expand semispaces if it was hit.
|
| void CheckNewSpaceExpansionCriteria();
|
|
|
| - inline bool HeapIsFullEnoughToStartIncrementalMarking(intptr_t limit) {
|
| - if (FLAG_stress_compaction && (gc_count_ & 1) != 0) return true;
|
| -
|
| - intptr_t adjusted_allocation_limit = limit - new_space_.Capacity();
|
| -
|
| - if (PromotedTotalSize() >= adjusted_allocation_limit) return true;
|
| -
|
| - if (HighMemoryPressure()) return true;
|
| -
|
| - return false;
|
| - }
|
| + inline bool HeapIsFullEnoughToStartIncrementalMarking(intptr_t limit);
|
|
|
| void VisitExternalResources(v8::ExternalResourceVisitor* visitor);
|
|
|
| @@ -885,31 +869,8 @@ class Heap {
|
| MapSpace* map_space() { return map_space_; }
|
| LargeObjectSpace* lo_space() { return lo_space_; }
|
|
|
| - PagedSpace* paged_space(int idx) {
|
| - switch (idx) {
|
| - case OLD_SPACE:
|
| - return old_space();
|
| - case MAP_SPACE:
|
| - return map_space();
|
| - case CODE_SPACE:
|
| - return code_space();
|
| - case NEW_SPACE:
|
| - case LO_SPACE:
|
| - UNREACHABLE();
|
| - }
|
| - return NULL;
|
| - }
|
| -
|
| - Space* space(int idx) {
|
| - switch (idx) {
|
| - case NEW_SPACE:
|
| - return new_space();
|
| - case LO_SPACE:
|
| - return lo_space();
|
| - default:
|
| - return paged_space(idx);
|
| - }
|
| - }
|
| + inline PagedSpace* paged_space(int idx);
|
| + inline Space* space(int idx);
|
|
|
| // Returns name of the space.
|
| const char* GetSpaceName(int idx);
|
| @@ -1278,13 +1239,9 @@ class Heap {
|
| return static_cast<intptr_t>(total);
|
| }
|
|
|
| - void UpdateNewSpaceAllocationCounter() {
|
| - new_space_allocation_counter_ = NewSpaceAllocationCounter();
|
| - }
|
| + inline void UpdateNewSpaceAllocationCounter();
|
|
|
| - size_t NewSpaceAllocationCounter() {
|
| - return new_space_allocation_counter_ + new_space()->AllocatedSinceLastGC();
|
| - }
|
| + inline size_t NewSpaceAllocationCounter();
|
|
|
| // This should be used only for testing.
|
| void set_new_space_allocation_counter(size_t new_value) {
|
| @@ -1602,7 +1559,7 @@ class Heap {
|
| void EnsureFromSpaceIsCommitted();
|
|
|
| // Uncommit unused semi space.
|
| - bool UncommitFromSpace() { return new_space_.UncommitFromSpace(); }
|
| + bool UncommitFromSpace();
|
|
|
| // Fill in bogus values in from space
|
| void ZapFromSpace();
|
| @@ -1763,14 +1720,7 @@ class Heap {
|
| void SetOldGenerationAllocationLimit(intptr_t old_gen_size, double gc_speed,
|
| double mutator_speed);
|
|
|
| - intptr_t MinimumAllocationLimitGrowingStep() {
|
| - const double kRegularAllocationLimitGrowingStep = 8;
|
| - const double kLowMemoryAllocationLimitGrowingStep = 2;
|
| - intptr_t limit = (Page::kPageSize > MB ? Page::kPageSize : MB);
|
| - return limit * (ShouldOptimizeForMemoryUsage()
|
| - ? kLowMemoryAllocationLimitGrowingStep
|
| - : kRegularAllocationLimitGrowingStep);
|
| - }
|
| + intptr_t MinimumAllocationLimitGrowingStep();
|
|
|
| // ===========================================================================
|
| // Idle notification. ========================================================
|
|
|