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>
Thu, 25 Feb 2010 14:24:44 +0000 (14:24 +0000)
committersgjesse@chromium.org <sgjesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 25 Feb 2010 14:24:44 +0000 (14:24 +0000)
commit83982870707088b1ac9eab86fdabf618f2702c41
tree4e46786c067ac04fb49577dd0896592ca486bac1
parent164daeda7a71a1e0daebda67937281d0b808df10
Refactor the code cache to handle large number of properties on the global object.

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.

BUG=613
Review URL: http://codereview.chromium.org/652119

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