Revision: 16136
Author:   [email protected]
Date:     Fri Aug  9 08:23:15 2013
Log:      Make sure polymorphic element access creates non-replaying phis.

[email protected]
BUG=v8:2815

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

Modified:
 /branches/bleeding_edge/src/arm/lithium-arm.cc
 /branches/bleeding_edge/src/hydrogen.cc
 /branches/bleeding_edge/src/ia32/lithium-ia32.cc
 /branches/bleeding_edge/src/mips/lithium-mips.cc
 /branches/bleeding_edge/src/x64/lithium-x64.cc

=======================================
--- /branches/bleeding_edge/src/arm/lithium-arm.cc      Fri Aug  9 08:18:23 2013
+++ /branches/bleeding_edge/src/arm/lithium-arm.cc      Fri Aug  9 08:23:15 2013
@@ -815,11 +815,7 @@
     HEnvironment* last_environment = pred->last_environment();
     for (int i = 0; i < block->phis()->length(); ++i) {
       HPhi* phi = block->phis()->at(i);
-      // TODO(mstarzinger): The length check below should actually not
-      // be necessary, but some array stubs already rely on it. This
-      // should be investigated and fixed.
-      if (phi->HasMergedIndex() &&
-          phi->merged_index() < last_environment->length()) {
+      if (phi->HasMergedIndex()) {
         last_environment->SetValueAt(phi->merged_index(), phi);
       }
     }
=======================================
--- /branches/bleeding_edge/src/hydrogen.cc     Fri Aug  9 08:18:23 2013
+++ /branches/bleeding_edge/src/hydrogen.cc     Fri Aug  9 08:23:15 2013
@@ -5701,6 +5701,7 @@
     if (!is_store) {
       Push(access);
     }
+    NoObservableSideEffectsScope scope(this);
     current_block()->GotoNoSimulate(join);
     set_current_block(other_map);
   }
=======================================
--- /branches/bleeding_edge/src/ia32/lithium-ia32.cc Fri Aug 9 08:18:23 2013 +++ /branches/bleeding_edge/src/ia32/lithium-ia32.cc Fri Aug 9 08:23:15 2013
@@ -870,11 +870,7 @@
     HEnvironment* last_environment = pred->last_environment();
     for (int i = 0; i < block->phis()->length(); ++i) {
       HPhi* phi = block->phis()->at(i);
-      // TODO(mstarzinger): The length check below should actually not
-      // be necessary, but some array stubs already rely on it. This
-      // should be investigated and fixed.
-      if (phi->HasMergedIndex() &&
-          phi->merged_index() < last_environment->length()) {
+      if (phi->HasMergedIndex()) {
         last_environment->SetValueAt(phi->merged_index(), phi);
       }
     }
=======================================
--- /branches/bleeding_edge/src/mips/lithium-mips.cc Fri Aug 9 08:18:23 2013 +++ /branches/bleeding_edge/src/mips/lithium-mips.cc Fri Aug 9 08:23:15 2013
@@ -820,11 +820,7 @@
     HEnvironment* last_environment = pred->last_environment();
     for (int i = 0; i < block->phis()->length(); ++i) {
       HPhi* phi = block->phis()->at(i);
-      // TODO(mstarzinger): The length check below should actually not
-      // be necessary, but some array stubs already rely on it. This
-      // should be investigated and fixed.
-      if (phi->HasMergedIndex() &&
-          phi->merged_index() < last_environment->length()) {
+      if (phi->HasMergedIndex()) {
         last_environment->SetValueAt(phi->merged_index(), phi);
       }
     }
=======================================
--- /branches/bleeding_edge/src/x64/lithium-x64.cc      Fri Aug  9 08:18:23 2013
+++ /branches/bleeding_edge/src/x64/lithium-x64.cc      Fri Aug  9 08:23:15 2013
@@ -814,11 +814,7 @@
     HEnvironment* last_environment = pred->last_environment();
     for (int i = 0; i < block->phis()->length(); ++i) {
       HPhi* phi = block->phis()->at(i);
-      // TODO(mstarzinger): The length check below should actually not
-      // be necessary, but some array stubs already rely on it. This
-      // should be investigated and fixed.
-      if (phi->HasMergedIndex() &&
-          phi->merged_index() < last_environment->length()) {
+      if (phi->HasMergedIndex()) {
         last_environment->SetValueAt(phi->merged_index(), phi);
       }
     }

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