Revision: 17805
Author:   [email protected]
Date:     Fri Nov 15 18:44:59 2013 UTC
Log:      Fix bogus allocation limit in allocation folding.

[email protected]
TEST=mjsunit/allocation-folding

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

Modified:
 /branches/bleeding_edge/src/hydrogen-instructions.cc
 /branches/bleeding_edge/test/mjsunit/allocation-folding.js

=======================================
--- /branches/bleeding_edge/src/hydrogen-instructions.cc Fri Nov 15 12:10:59 2013 UTC +++ /branches/bleeding_edge/src/hydrogen-instructions.cc Fri Nov 15 18:44:59 2013 UTC
@@ -3404,7 +3404,7 @@
     }
   }

-  if (new_dominator_size > Page::kMaxNonCodeHeapObjectSize) {
+ if (new_dominator_size > isolate()->heap()->MaxRegularSpaceAllocationSize()) {
     if (FLAG_trace_allocation_folding) {
       PrintF("#%d (%s) cannot fold into #%d (%s) due to size: %d\n",
           id(), Mnemonic(), dominator_allocate->id(),
=======================================
--- /branches/bleeding_edge/test/mjsunit/allocation-folding.js Wed Aug 28 08:39:43 2013 UTC +++ /branches/bleeding_edge/test/mjsunit/allocation-folding.js Fri Nov 15 18:44:59 2013 UTC
@@ -100,3 +100,17 @@

 assertEquals(result[1], 4);
 assertEquals(result2[1], 6);
+
+// Test to exceed the Heap::MaxRegularSpaceAllocationSize limit but not
+// the Page::kMaxNonCodeHeapObjectSize limit with allocation folding.
+
+function boom() {
+  var a1 = new Array(84632);
+  var a2 = new Array(84632);
+  var a3 = new Array(84632);
+  return [ a1, a2, a3 ];
+}
+
+boom(); boom(); boom();
+%OptimizeFunctionOnNextCall(boom);
+boom();

--
--
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