Refactor the code cache to handle large number of properties on the global object...
authorsgjesse@chromium.org <sgjesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 9 Mar 2010 10:49:41 +0000 (10:49 +0000)
committersgjesse@chromium.org <sgjesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 9 Mar 2010 10:49:41 +0000 (10:49 +0000)
commit504664365dd9ac638c4cf2bfbc194a40d8c768f7
tree37b8c5c835f2b6f968e66242a421fb810058fda3
parent0c2885f83d470b3af7f61d157ecb1e1faa904997
Refactor the code cache to handle large number of properties on the global object (take 2).

A separate object type for the code cache have been added. This object has two different code caches. The first one (default_cache) is a fixed array organized in the same way as the as the code cache was before. The second cache (global_access_cache) is for code stubs to access the global object. This cache is organized as a hash table taking the property name and code flags as the key.

The reason for separating the global access stubs into a hash table representation is that the number of these is not bounded in the same was as the other types.

This is a remake of r3952 (http://codereview.chromium.org/652119) which have the additional ability to look for the index of code stubs for access to the global object.

BUG=http://code.google.com/p/v8/issues/detail?id=613

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4066 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/heap.cc
src/heap.h
src/ic.cc
src/ic.h
src/objects-debug.cc
src/objects-inl.h
src/objects.cc
src/objects.h