Vector ICs: The Oracle needs to report feedback for the object literals and the count...
authormvstanton <mvstanton@chromium.org>
Thu, 10 Sep 2015 15:02:21 +0000 (08:02 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 10 Sep 2015 15:02:39 +0000 (15:02 +0000)
commit752b0308df72461bfeb644bf6dd8dd331fcdb722
tree1dc2590436661ef9ce7221b5d53ba035b6efd2a7
parent33ec0b79b8ea60dcccf1d445b0cbd2eed8e1a165
Vector ICs: The Oracle needs to report feedback for the object literals and the count operation.

The refactoring is because it's awkward and error-prone to deterimine which IC slot an
ObjectLiteralProperty uses for feedback. The fix is for each one to know it's own slot. In the
numbering pass, we allocate slots for the ObjectLiteral, then hand out those slots into the
properties.

It adds one word to the ObjectLiteralProperty expression - I'm investigating if thats a
problem.

This changes makes compiling the object literal cleaner across the three compilers. Also, the
slot allocation logic in ObjectLiteral::ComputeFeedbackRequirements() was refactoring to mimic
the style in full-codegen. This is useful since it must remain in sync with
FullCodegen::VisitObjectLiteral().

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

Cr-Commit-Position: refs/heads/master@{#30686}
17 files changed:
src/ast-numbering.cc
src/ast.cc
src/ast.h
src/compiler/ast-graph-builder.cc
src/compiler/ast-graph-builder.h
src/full-codegen/arm/full-codegen-arm.cc
src/full-codegen/arm64/full-codegen-arm64.cc
src/full-codegen/full-codegen.cc
src/full-codegen/full-codegen.h
src/full-codegen/ia32/full-codegen-ia32.cc
src/full-codegen/mips/full-codegen-mips.cc
src/full-codegen/mips64/full-codegen-mips64.cc
src/full-codegen/x64/full-codegen-x64.cc
src/hydrogen.cc
src/type-info.cc
src/type-info.h
src/typing.cc