Index: runtime/vm/heap.cc |
=================================================================== |
--- runtime/vm/heap.cc (revision 40518) |
+++ runtime/vm/heap.cc (working copy) |
@@ -38,6 +38,7 @@ |
"Enables heap verification after GC."); |
DEFINE_FLAG(bool, verify_before_gc, false, |
"Enables heap verification before GC."); |
+DEFINE_FLAG(bool, pretenure_all, false, "Global pretenuring (for testing)."); |
Heap::Heap(Isolate* isolate, |
@@ -404,16 +405,31 @@ |
} |
-uword Heap::TopAddress() { |
- return reinterpret_cast<uword>(new_space_->TopAddress()); |
+uword Heap::TopAddress(Heap::Space space) { |
+ if (space == kNew) { |
+ return reinterpret_cast<uword>(new_space_->TopAddress()); |
+ } else { |
+ ASSERT(space == kPretenured); |
+ return reinterpret_cast<uword>(old_space_->TopAddress()); |
+ } |
} |
-uword Heap::EndAddress() { |
- return reinterpret_cast<uword>(new_space_->EndAddress()); |
+uword Heap::EndAddress(Heap::Space space) { |
+ if (space == kNew) { |
+ return reinterpret_cast<uword>(new_space_->EndAddress()); |
+ } else { |
+ ASSERT(space == kPretenured); |
+ return reinterpret_cast<uword>(old_space_->EndAddress()); |
+ } |
} |
+Heap::Space Heap::SpaceForAllocation(intptr_t cid) const { |
+ return FLAG_pretenure_all ? kPretenured : kNew; |
+} |
+ |
+ |
void Heap::Init(Isolate* isolate, |
intptr_t max_new_gen_words, |
intptr_t max_old_gen_words) { |