Revision: 4160
Author: [email protected]
Date: Wed Mar 17 05:27:32 2010
Log: Fix excessive stack usage by compiler due to local in recursive scope.
Review URL: http://codereview.chromium.org/1019006
http://code.google.com/p/v8/source/detail?r=4160

Modified:
 /branches/bleeding_edge/src/ia32/codegen-ia32.cc

=======================================
--- /branches/bleeding_edge/src/ia32/codegen-ia32.cc Wed Mar 17 02:49:03 2010 +++ /branches/bleeding_edge/src/ia32/codegen-ia32.cc Wed Mar 17 05:27:32 2010
@@ -560,7 +560,6 @@
   int original_height = frame_->height();
 #endif
   ASSERT(!in_spilled_code());
-  JumpTarget done;

   // If the expression should be a side-effect-free 32-bit int computation,
   // compile that SafeInt32 path, and a bailout path.
@@ -570,6 +569,7 @@
       expr->num_bit_ops() > 2 &&
       CpuFeatures::IsSupported(SSE2)) {
     BreakTarget unsafe_bailout;
+    JumpTarget done;
     unsafe_bailout.set_expected_height(frame_->height());
     LoadInSafeInt32Mode(expr, &unsafe_bailout);
     done.Jump();
@@ -578,6 +578,7 @@
       unsafe_bailout.Bind();
       LoadWithSafeInt32ModeDisabled(expr);
     }
+    done.Bind();
   } else {
     JumpTarget true_target;
     JumpTarget false_target;
@@ -633,7 +634,6 @@
       }
     }
   }
-  done.Bind();
   ASSERT(has_valid_frame());
   ASSERT(frame_->height() == original_height + 1);
 }

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to