Remove superfluous HInnerAllocatedObject in BuildEmitDeepCopy
authordanno@chromium.org <danno@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 27 Jun 2013 16:07:55 +0000 (16:07 +0000)
committerdanno@chromium.org <danno@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 27 Jun 2013 16:07:55 +0000 (16:07 +0000)
R=hpayer@chromium.org

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

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

src/hydrogen.cc

index d7bfe83..3b55658 100644 (file)
@@ -9999,10 +9999,12 @@ void HOptimizedGraphBuilder::BuildEmitDeepCopy(
   }
 
   // Copy in-object properties.
-  HValue* object_properties =
-      AddInstruction(new(zone) HInnerAllocatedObject(target, object_offset));
-  BuildEmitInObjectProperties(boilerplate_object, original_boilerplate_object,
-      object_properties, target, offset, data_target, data_offset);
+  if (boilerplate_object->map()->NumberOfFields() != 0) {
+    HValue* object_properties =
+        AddInstruction(new(zone) HInnerAllocatedObject(target, object_offset));
+    BuildEmitInObjectProperties(boilerplate_object, original_boilerplate_object,
+        object_properties, target, offset, data_target, data_offset);
+  }
 
   // Create allocation site info.
   if (mode == TRACK_ALLOCATION_SITE &&