Index: src/heap/heap.h |
diff --git a/src/heap/heap.h b/src/heap/heap.h |
index c77902f0f634f4a8055df8f9c6b254fd63ad5ac6..75238054ea5f295c2f3f1f9e1db2cc6f0a66bfe2 100644 |
--- a/src/heap/heap.h |
+++ b/src/heap/heap.h |
@@ -928,7 +928,7 @@ class Heap { |
bool HasLowAllocationRate(); |
bool HasHighFragmentation(); |
- bool HasHighFragmentation(intptr_t used, intptr_t committed); |
+ bool HasHighFragmentation(size_t used, size_t committed); |
void ActivateMemoryReducerIfNeeded(); |
@@ -952,8 +952,8 @@ class Heap { |
// Configure heap size in MB before setup. Return false if the heap has been |
// set up already. |
- bool ConfigureHeap(int max_semi_space_size, int max_old_space_size, |
- int max_executable_size, size_t code_range_size); |
+ bool ConfigureHeap(size_t max_semi_space_size, size_t max_old_space_size, |
+ size_t max_executable_size, size_t code_range_size); |
bool ConfigureHeapDefault(); |
// Prepares the heap, setting up memory areas that are needed in the isolate |
@@ -1293,20 +1293,20 @@ class Heap { |
// =========================================================================== |
// Returns the maximum amount of memory reserved for the heap. |
- intptr_t MaxReserved() { |
+ size_t MaxReserved() { |
return 2 * max_semi_space_size_ + max_old_generation_size_; |
} |
- int MaxSemiSpaceSize() { return max_semi_space_size_; } |
- int InitialSemiSpaceSize() { return initial_semispace_size_; } |
- intptr_t MaxOldGenerationSize() { return max_old_generation_size_; } |
- intptr_t MaxExecutableSize() { return max_executable_size_; } |
+ size_t MaxSemiSpaceSize() { return max_semi_space_size_; } |
+ size_t InitialSemiSpaceSize() { return initial_semispace_size_; } |
+ size_t MaxOldGenerationSize() { return max_old_generation_size_; } |
+ size_t MaxExecutableSize() { return max_executable_size_; } |
// Returns the capacity of the heap in bytes w/o growing. Heap grows when |
// more spaces are needed until it reaches the limit. |
- intptr_t Capacity(); |
+ size_t Capacity(); |
// Returns the capacity of the old generation. |
- intptr_t OldGenerationCapacity(); |
+ size_t OldGenerationCapacity(); |
// Returns the amount of memory currently committed for the heap. |
size_t CommittedMemory(); |
@@ -1330,28 +1330,26 @@ class Heap { |
// Returns the available bytes in space w/o growing. |
// Heap doesn't guarantee that it can allocate an object that requires |
// all available bytes. Check MaxHeapObjectSize() instead. |
- intptr_t Available(); |
+ size_t Available(); |
// Returns of size of all objects residing in the heap. |
- intptr_t SizeOfObjects(); |
+ size_t SizeOfObjects(); |
void UpdateSurvivalStatistics(int start_new_space_size); |
- inline void IncrementPromotedObjectsSize(intptr_t object_size) { |
- DCHECK_GE(object_size, 0); |
+ inline void IncrementPromotedObjectsSize(size_t object_size) { |
promoted_objects_size_ += object_size; |
} |
- inline intptr_t promoted_objects_size() { return promoted_objects_size_; } |
+ inline size_t promoted_objects_size() { return promoted_objects_size_; } |
- inline void IncrementSemiSpaceCopiedObjectSize(intptr_t object_size) { |
- DCHECK_GE(object_size, 0); |
+ inline void IncrementSemiSpaceCopiedObjectSize(size_t object_size) { |
semi_space_copied_object_size_ += object_size; |
} |
- inline intptr_t semi_space_copied_object_size() { |
+ inline size_t semi_space_copied_object_size() { |
return semi_space_copied_object_size_; |
} |
- inline intptr_t SurvivedNewSpaceObjectSize() { |
+ inline size_t SurvivedNewSpaceObjectSize() { |
return promoted_objects_size_ + semi_space_copied_object_size_; |
} |
@@ -1361,20 +1359,13 @@ class Heap { |
inline void IncrementNodesPromoted() { nodes_promoted_++; } |
- inline void IncrementYoungSurvivorsCounter(intptr_t survived) { |
- DCHECK_GE(survived, 0); |
+ inline void IncrementYoungSurvivorsCounter(size_t survived) { |
survived_last_scavenge_ = survived; |
survived_since_last_expansion_ += survived; |
} |
- inline intptr_t PromotedTotalSize() { |
- int64_t total = PromotedSpaceSizeOfObjects() + PromotedExternalMemorySize(); |
- if (total > std::numeric_limits<intptr_t>::max()) { |
- // TODO(erikcorry): Use uintptr_t everywhere we do heap size calculations. |
- return std::numeric_limits<intptr_t>::max(); |
- } |
- if (total < 0) return 0; |
- return static_cast<intptr_t>(total); |
+ inline uint64_t PromotedTotalSize() { |
+ return PromotedSpaceSizeOfObjects() + PromotedExternalMemorySize(); |
} |
inline void UpdateNewSpaceAllocationCounter(); |
@@ -1408,7 +1399,7 @@ class Heap { |
int gc_count() const { return gc_count_; } |
// Returns the size of objects residing in non new spaces. |
- intptr_t PromotedSpaceSizeOfObjects(); |
+ size_t PromotedSpaceSizeOfObjects(); |
double total_regexp_code_generated() { return total_regexp_code_generated_; } |
void IncreaseTotalRegexpCodeGenerated(int size) { |
@@ -1821,8 +1812,10 @@ class Heap { |
// GC statistics. ============================================================ |
// =========================================================================== |
- inline intptr_t OldGenerationSpaceAvailable() { |
- return old_generation_allocation_limit_ - PromotedTotalSize(); |
+ inline size_t OldGenerationSpaceAvailable() { |
+ if (old_generation_allocation_limit_ <= PromotedTotalSize()) return 0; |
+ return old_generation_allocation_limit_ - |
+ static_cast<size_t>(PromotedTotalSize()); |
} |
void UpdateTotalGCTime(double duration); |
@@ -1835,23 +1828,21 @@ class Heap { |
// Decrease the allocation limit if the new limit based on the given |
// parameters is lower than the current limit. |
- void DampenOldGenerationAllocationLimit(intptr_t old_gen_size, |
- double gc_speed, |
+ void DampenOldGenerationAllocationLimit(size_t old_gen_size, double gc_speed, |
double mutator_speed); |
- |
// Calculates the allocation limit based on a given growing factor and a |
// given old generation size. |
- intptr_t CalculateOldGenerationAllocationLimit(double factor, |
- intptr_t old_gen_size); |
+ size_t CalculateOldGenerationAllocationLimit(double factor, |
+ size_t old_gen_size); |
// Sets the allocation limit to trigger the next full garbage collection. |
- void SetOldGenerationAllocationLimit(intptr_t old_gen_size, double gc_speed, |
+ void SetOldGenerationAllocationLimit(size_t old_gen_size, double gc_speed, |
double mutator_speed); |
- intptr_t MinimumAllocationLimitGrowingStep(); |
+ size_t MinimumAllocationLimitGrowingStep(); |
- intptr_t old_generation_allocation_limit() const { |
+ size_t old_generation_allocation_limit() const { |
return old_generation_allocation_limit_; |
} |
@@ -2116,20 +2107,20 @@ class Heap { |
Object* roots_[kRootListLength]; |
size_t code_range_size_; |
- int max_semi_space_size_; |
- int initial_semispace_size_; |
- intptr_t max_old_generation_size_; |
- intptr_t initial_old_generation_size_; |
+ size_t max_semi_space_size_; |
+ size_t initial_semispace_size_; |
+ size_t max_old_generation_size_; |
+ size_t initial_old_generation_size_; |
bool old_generation_size_configured_; |
- intptr_t max_executable_size_; |
+ size_t max_executable_size_; |
size_t maximum_committed_; |
// For keeping track of how much data has survived |
// scavenge since last new space expansion. |
- intptr_t survived_since_last_expansion_; |
+ size_t survived_since_last_expansion_; |
// ... and since the last scavenge. |
- intptr_t survived_last_scavenge_; |
+ size_t survived_last_scavenge_; |
// This is not the depth of nested AlwaysAllocateScope's but rather a single |
// count, as scopes can be acquired from multiple tasks (read: threads). |
@@ -2161,7 +2152,7 @@ class Heap { |
Address new_space_top_after_last_gc_; |
// Returns the amount of external memory registered since last global gc. |
- int64_t PromotedExternalMemorySize(); |
+ uint64_t PromotedExternalMemorySize(); |
// How many "runtime allocations" happened. |
uint32_t allocations_count_; |
@@ -2190,7 +2181,7 @@ class Heap { |
// is checked when we have already decided to do a GC to help determine |
// which collector to invoke, before expanding a paged space in the old |
// generation and on every allocation in large object space. |
- intptr_t old_generation_allocation_limit_; |
+ size_t old_generation_allocation_limit_; |
// Indicates that inline bump-pointer allocation has been globally disabled |
// for all spaces. This is used to disable allocations in generated code. |
@@ -2220,11 +2211,11 @@ class Heap { |
GCTracer* tracer_; |
- intptr_t promoted_objects_size_; |
+ size_t promoted_objects_size_; |
double promotion_ratio_; |
double promotion_rate_; |
- intptr_t semi_space_copied_object_size_; |
- intptr_t previous_semi_space_copied_object_size_; |
+ size_t semi_space_copied_object_size_; |
+ size_t previous_semi_space_copied_object_size_; |
double semi_space_copied_rate_; |
int nodes_died_in_new_space_; |
int nodes_copied_in_new_space_; |