Support elements transitions in load elimination
authorverwaest@chromium.org <verwaest@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 17 Feb 2014 14:43:15 +0000 (14:43 +0000)
committerverwaest@chromium.org <verwaest@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 17 Feb 2014 14:43:15 +0000 (14:43 +0000)
BUG=
R=titzer@chromium.org

Review URL: https://codereview.chromium.org/167893007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/hydrogen-load-elimination.cc

index 94c9952..2228116 100644 (file)
@@ -98,6 +98,13 @@ class HLoadEliminationTable : public ZoneObject {
         }
         break;
       }
+      case HValue::kTransitionElementsKind: {
+        HTransitionElementsKind* t = HTransitionElementsKind::cast(instr);
+        HValue* object = t->object()->ActualValue();
+        KillFieldInternal(object, FieldOf(JSArray::kElementsOffset), NULL);
+        KillFieldInternal(object, FieldOf(JSObject::kMapOffset), NULL);
+        break;
+      }
       default: {
         if (instr->CheckChangesFlag(kInobjectFields)) {
           TRACE((" kill-all i%d\n", instr->id()));