Make embedded maps in optimized code weak.
authorulan@chromium.org <ulan@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 24 Jan 2013 11:55:05 +0000 (11:55 +0000)
committerulan@chromium.org <ulan@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 24 Jan 2013 11:55:05 +0000 (11:55 +0000)
commite6224d275fd626b9762e9318e62cd84f9c7f84a8
tree3ac4fa94b5b4bcd7e12bd308bd44096938f22ac5
parentc500efe14d9624d2c7e80f77bef6ec66b7cae436
Make embedded maps in optimized code weak.

Each map has a weak array of dependent codes, where the map tracks all the optimized codes that embed it.
Old space GC either clears the dead dependent codes from the array if the corresponding map is alive or deoptimizes the live dependent codes if the map is dead.

BUG=v8:2073
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/heap.cc
src/lithium.cc
src/lithium.h
src/mark-compact.cc
src/mark-compact.h
src/objects-inl.h
src/objects-visiting-inl.h
src/objects.cc
src/objects.h
test/mjsunit/mjsunit.status
test/mjsunit/regress/regress-2073.js [new file with mode: 0644]