Clarify side effects of HTransitionElementsKind.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
mstarzinger@chromium.org 2013-08-19 10:55:51 +00:00
parent 17046dbe14
commit d52f489c79
2 changed files with 2 additions and 5 deletions

View File

@ -3085,6 +3085,7 @@ void HTransitionElementsKind::PrintDataTo(StringStream* stream) {
ElementsAccessor::ForKind(from_kind)->name(), ElementsAccessor::ForKind(from_kind)->name(),
*transitioned_map(), *transitioned_map(),
ElementsAccessor::ForKind(to_kind)->name()); ElementsAccessor::ForKind(to_kind)->name());
if (IsSimpleMapChangeTransition(from_kind, to_kind)) stream->Add(" (simple)");
} }

View File

@ -6265,11 +6265,7 @@ class HTransitionElementsKind: public HTemplateInstruction<2> {
SetOperandAt(1, context); SetOperandAt(1, context);
SetFlag(kUseGVN); SetFlag(kUseGVN);
SetGVNFlag(kChangesElementsKind); SetGVNFlag(kChangesElementsKind);
if (original_map->has_fast_double_elements()) { if (!IsSimpleMapChangeTransition(from_kind_, to_kind_)) {
SetGVNFlag(kChangesElementsPointer);
SetGVNFlag(kChangesNewSpacePromotion);
}
if (transitioned_map->has_fast_double_elements()) {
SetGVNFlag(kChangesElementsPointer); SetGVNFlag(kChangesElementsPointer);
SetGVNFlag(kChangesNewSpacePromotion); SetGVNFlag(kChangesNewSpacePromotion);
} }