Index: src/ia32/full-codegen-ia32.cc |
diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc |
index 50713b5c141a10c9cad8a29ed77aee159f2276e1..bbe03c4a4fb6988d5986b483f6ad68b1a49ebd80 100644 |
--- a/src/ia32/full-codegen-ia32.cc |
+++ b/src/ia32/full-codegen-ia32.cc |
@@ -1678,6 +1678,14 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
FastCloneShallowArrayStub::Mode mode = has_constant_fast_elements |
? FastCloneShallowArrayStub::CLONE_ELEMENTS |
: FastCloneShallowArrayStub::CLONE_ANY_ELEMENTS; |
+ |
+ // Let's track allocation info if we are SMI or DOUBLE, it might be |
+ // useful to pretransition. |
danno
2012/12/26 10:32:01
This also will track DOUBLE -> FAST_OBJECT, so the
mvstanton
2013/01/03 14:40:43
Done.
|
+ if (mode == FastCloneShallowArrayStub::CLONE_ANY_ELEMENTS && |
+ FLAG_use_allocation_site_info) { |
+ mode = FastCloneShallowArrayStub::CLONE_ANY_ELEMENTS_WITH_ALLOCATION_INFO; |
+ } |
+ |
FastCloneShallowArrayStub stub(mode, length); |
__ CallStub(&stub); |
} |