In-place shrinking of descriptor arrays with non-live transitions.
authorverwaest@chromium.org <verwaest@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 25 Jun 2012 13:10:54 +0000 (13:10 +0000)
committerverwaest@chromium.org <verwaest@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 25 Jun 2012 13:10:54 +0000 (13:10 +0000)
commit68c944c2657af6e60271ce2e91a3381dd83b1c82
tree3c870f1b44881a1e08c42effbfcf7f765bfb3e7a
parent390580e49ff7d54f93aff25173596b7214bf102f
In-place shrinking of descriptor arrays with non-live transitions.
Instead of overwriting non-live transitions with NULL_DESCRIPTORs, we remove them from the array by compacting the array (shifting live values to the left) and in-place trimming the array. If the final descriptor array contains no live values (only contained transitions which are now all cleared), we move bit_field3 back from the descriptor array to the map. The descriptor array itself will be collected in the next GC.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10575032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
15 files changed:
src/ast.cc
src/bootstrapper.cc
src/factory.cc
src/ic.cc
src/mark-compact.cc
src/objects-debug.cc
src/objects-inl.h
src/objects-printer.cc
src/objects.cc
src/objects.h
src/profile-generator.cc
src/property-details.h
src/property.cc
src/property.h
src/runtime.cc