Revision: 15204
Author:   [email protected]
Date:     Wed Jun 19 02:38:28 2013
Log: Always reset allowed OSR nesting level when reverting interrupt code patches.

Also, --trap-on-deopt should only affect optimized functions, not hydrogen stubs.

[email protected]

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

Modified:
 /branches/bleeding_edge/src/arm/lithium-codegen-arm.cc
 /branches/bleeding_edge/src/deoptimizer.cc
 /branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc
 /branches/bleeding_edge/src/mips/lithium-codegen-mips.cc
 /branches/bleeding_edge/src/runtime.cc
 /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc

=======================================
--- /branches/bleeding_edge/src/arm/lithium-codegen-arm.cc Fri Jun 14 09:06:12 2013 +++ /branches/bleeding_edge/src/arm/lithium-codegen-arm.cc Wed Jun 19 02:38:28 2013
@@ -825,7 +825,7 @@
     return;
   }

-  if (FLAG_trap_on_deopt) {
+  if (FLAG_trap_on_deopt && info()->IsOptimizing()) {
     __ stop("trap_on_deopt", cc);
   }

=======================================
--- /branches/bleeding_edge/src/deoptimizer.cc  Wed Jun 12 07:22:49 2013
+++ /branches/bleeding_edge/src/deoptimizer.cc  Wed Jun 19 02:38:28 2013
@@ -2429,6 +2429,7 @@
     back_edge_cursor += FullCodeGenerator::kBackEdgeEntrySize;
   }
   unoptimized_code->set_back_edges_patched_for_osr(false);
+  unoptimized_code->set_allow_osr_at_loop_nesting_level(0);
 #ifdef DEBUG
   // Assert that none of the back edges are patched anymore.
   Deoptimizer::VerifyInterruptCode(
=======================================
--- /branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc Fri Jun 14 09:06:12 2013 +++ /branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc Wed Jun 19 02:38:28 2013
@@ -901,7 +901,7 @@
     __ popfd();
   }

-  if (FLAG_trap_on_deopt) {
+  if (FLAG_trap_on_deopt && info()->IsOptimizing()) {
     Label done;
     if (cc != no_condition) {
       __ j(NegateCondition(cc), &done, Label::kNear);
=======================================
--- /branches/bleeding_edge/src/mips/lithium-codegen-mips.cc Mon Jun 17 08:06:41 2013 +++ /branches/bleeding_edge/src/mips/lithium-codegen-mips.cc Wed Jun 19 02:38:28 2013
@@ -796,7 +796,7 @@
     return;
   }

-  if (FLAG_trap_on_deopt) {
+  if (FLAG_trap_on_deopt && info()->IsOptimizing()) {
     Label skip;
     if (cc != al) {
       __ Branch(&skip, NegateCondition(cc), src1, src2);
=======================================
--- /branches/bleeding_edge/src/runtime.cc      Mon Jun 17 10:42:27 2013
+++ /branches/bleeding_edge/src/runtime.cc      Wed Jun 19 02:38:28 2013
@@ -8265,9 +8265,6 @@
                                    *interrupt_code,
                                    *replacement_code);

-  // Allow OSR only at nesting level zero again.
-  unoptimized->set_allow_osr_at_loop_nesting_level(0);
-
   // If the optimization attempt succeeded, return the AST id tagged as a
   // smi. This tells the builtin that we need to translate the unoptimized
   // frame to an optimized one.
=======================================
--- /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc Wed Jun 19 02:36:38 2013 +++ /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc Wed Jun 19 02:38:28 2013
@@ -706,7 +706,7 @@

   ASSERT(FLAG_deopt_every_n_times == 0);  // Not yet implemented on x64.

-  if (FLAG_trap_on_deopt) {
+  if (FLAG_trap_on_deopt && info()->IsOptimizing()) {
     Label done;
     if (cc != no_condition) {
       __ j(NegateCondition(cc), &done, Label::kNear);

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