Generate inline code for contextual loads.
authorvitalyr@chromium.org <vitalyr@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 20 Sep 2010 13:50:27 +0000 (13:50 +0000)
committervitalyr@chromium.org <vitalyr@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 20 Sep 2010 13:50:27 +0000 (13:50 +0000)
commitceb9d79d73bf6160068221ea6407637634ba5458
tree5e1dc674c709c0888943f343eacad58bc7d06fb8
parent290f142a7a719c2e685c93170dc421e7c0243ab5
Generate inline code for contextual loads.

Contextual load requires only a map check followed by a cell hole
check so we can generate pretty compact code for that. The fact that
we have inlined code is marked by mov ecx, offset instruction after
the IC call. Inlining is only enabled inside loops and in non-builtin
functions.

The generated code size increase is about 3%. This descreased the
pc-to-code cache hit rate in some of the benchmarks that trigger
GC. To compensate we now have 4 times as much entries in the cache.

Review URL: http://codereview.chromium.org/3402014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/arm/ic-arm.cc
src/arm/stub-cache-arm.cc
src/frames.h
src/ia32/codegen-ia32.cc
src/ia32/ic-ia32.cc
src/ia32/stub-cache-ia32.cc
src/ic.cc
src/ic.h
src/v8-counters.h
src/x64/ic-x64.cc
src/x64/stub-cache-x64.cc