Introduce FeedbackNexus for vector-based ics.
authormvstanton@chromium.org <mvstanton@chromium.org>
Tue, 28 Oct 2014 14:50:18 +0000 (14:50 +0000)
committermvstanton@chromium.org <mvstanton@chromium.org>
Tue, 28 Oct 2014 14:50:43 +0000 (14:50 +0000)
commit27ad136bdb01b31e789646252d43a2da03b98d48
tree3a6681731b7b4eef49720d3ba7d4749d197ade08
parenta5ffbf3c4695d11c876c41940c004bfed46cfa89
Introduce FeedbackNexus for vector-based ics.

A FeedbackNexus is the combination of a feedback vector, a slot(s) in
the vector, along with methods to query and manipulate that information
in a type-correct way.

A CallIC will have a CallICNexus, a LoadIC a LoadICNexus, etc.,
reflecting the fact that different types of ICs configure their data
in unique ways.

This CL limits itself to introducing and using the nexus type only for
CallICs. A follow-up will use them for Load and KeyedLoadICs for the
case when the --vector-ics flag is turned on.

The notion of a Nexus is also embedded at the lowest level of the IC
class. This makes sense because more ICs should become vector-based
in the future.

This CL is based on https://codereview.chromium.org/679073002/ which
should land first.

BUG=
R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24945}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/ic/ic-inl.h
src/ic/ic-state.cc
src/ic/ic-state.h
src/ic/ic.cc
src/ic/ic.h
src/type-feedback-vector.cc
src/type-feedback-vector.h
test/cctest/test-feedback-vector.cc