Revision: 21209
Author:   [email protected]
Date:     Fri May  9 09:23:10 2014 UTC
Log:      Make new space iterable for --log-gc and --heap-stats options

[email protected]
BUG=370827
TEST=test/mjsunit/regress/regress-370827.js
LOG=N

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

Added:
 /branches/bleeding_edge/test/mjsunit/regress/regress-370827.js
Modified:
 /branches/bleeding_edge/src/hydrogen-instructions.cc

=======================================
--- /dev/null
+++ /branches/bleeding_edge/test/mjsunit/regress/regress-370827.js Fri May 9 09:23:10 2014 UTC
@@ -0,0 +1,21 @@
+// Copyright 2014 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax --expose-gc --heap-stats
+
+function g(dummy, x) {
+  var start = "";
+  if (x) { start = x + " - "; }
+  start = start + "array length";
+};
+
+function f() {
+  gc();
+  g([0.1]);
+}
+
+f();
+%OptimizeFunctionOnNextCall(f);
+f();
+f();
=======================================
--- /branches/bleeding_edge/src/hydrogen-instructions.cc Fri May 9 08:28:25 2014 UTC +++ /branches/bleeding_edge/src/hydrogen-instructions.cc Fri May 9 09:23:10 2014 UTC
@@ -3825,19 +3825,18 @@
       dominator_allocate);
   dominator_allocate->UpdateSize(new_dominator_size_constant);

+  bool keep_new_space_iterable = FLAG_log_gc || FLAG_heap_stats;
 #ifdef VERIFY_HEAP
-  if (FLAG_verify_heap && dominator_allocate->IsNewSpaceAllocation()) {
+  keep_new_space_iterable = keep_new_space_iterable || FLAG_verify_heap;
+#endif
+
+ if (keep_new_space_iterable && dominator_allocate->IsNewSpaceAllocation()) {
     dominator_allocate->MakePrefillWithFiller();
   } else {
     // TODO(hpayer): This is a short-term hack to make allocation mementos
     // work again in new space.
     dominator_allocate->ClearNextMapWord(original_object_size);
   }
-#else
-  // TODO(hpayer): This is a short-term hack to make allocation mementos
-  // work again in new space.
-  dominator_allocate->ClearNextMapWord(original_object_size);
-#endif

   dominator_allocate->UpdateClearNextMapWord(MustClearNextMapWord());

--
--
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/d/optout.

Reply via email to