Revision: 16475
Author:   [email protected]
Date:     Mon Sep  2 13:36:49 2013 UTC
Log:      Bump MaxRegularSpaceAllocationSize to InitialSemiSpaceSize() * 4/5

to allow allocation of large packed arrays in paged spaces.

BUG=v8:2790
[email protected]

Review URL: https://codereview.chromium.org/23604023
http://code.google.com/p/v8/source/detail?r=16475

Modified:
 /branches/bleeding_edge/src/heap.cc
 /branches/bleeding_edge/src/heap.h
 /branches/bleeding_edge/src/objects.h

=======================================
--- /branches/bleeding_edge/src/heap.cc Mon Sep  2 10:35:34 2013 UTC
+++ /branches/bleeding_edge/src/heap.cc Mon Sep  2 13:36:49 2013 UTC
@@ -6716,6 +6716,12 @@
                                  RoundUp(max_old_generation_size_,
                                          Page::kPageSize));

+  // We rely on being able to allocate new arrays in paged spaces.
+  ASSERT(MaxRegularSpaceAllocationSize() >=
+         (JSArray::kSize +
+          FixedArray::SizeFor(JSObject::kInitialMaxFastElementArray) +
+          AllocationMemento::kSize));
+
   configured_ = true;
   return true;
 }
=======================================
--- /branches/bleeding_edge/src/heap.h  Mon Sep  2 10:35:34 2013 UTC
+++ /branches/bleeding_edge/src/heap.h  Mon Sep  2 13:36:49 2013 UTC
@@ -523,7 +523,7 @@
   int InitialSemiSpaceSize() { return initial_semispace_size_; }
   intptr_t MaxOldGenerationSize() { return max_old_generation_size_; }
   intptr_t MaxExecutableSize() { return max_executable_size_; }
- int MaxRegularSpaceAllocationSize() { return InitialSemiSpaceSize() * 3/4; } + int MaxRegularSpaceAllocationSize() { return InitialSemiSpaceSize() * 4/5; }

   // Returns the capacity of the heap in bytes w/o growing. Heap grows when
   // more spaces are needed until it reaches the limit.
=======================================
--- /branches/bleeding_edge/src/objects.h       Mon Sep  2 10:35:34 2013 UTC
+++ /branches/bleeding_edge/src/objects.h       Mon Sep  2 13:36:49 2013 UTC
@@ -2680,10 +2680,9 @@
   // don't want to be wasteful with long lived objects.
   static const int kMaxUncheckedOldFastElementsLength = 500;

-  // TODO(2790): HAllocate currently always allocates fast backing stores
-  // in new space, where on x64 we can only fit ~98K elements. Keep this
-  // limit lower than that until HAllocate is made smarter.
-  static const int kInitialMaxFastElementArray = 95000;
+  // Note that Heap::MaxRegularSpaceAllocationSize() puts a limit on
+  // permissible values (see the ASSERT in heap.cc).
+  static const int kInitialMaxFastElementArray = 100000;

   static const int kFastPropertiesSoftLimit = 12;
   static const int kMaxFastProperties = 64;

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to