Clear optimized code cache in shared function info when code gets deoptimized.

This adds a pointer to the shared function info into deoptimization data of an optimized code. Whenever the code is deoptimized, it clears the cache in the shared function info.

This fixes the problem when the optimized function dies in new space GC before the code is deoptimized due to code dependency and before the optimized code cache is cleared in old space GC (see mjsunit/regress/regress-343609.js).

This partially reverts r19603 because we need to be able to evict specific code from the optimized code cache.

BUG=343609
LOG=Y
TEST=mjsunit/regress/regress-343609.js
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/184923002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix symbol printing in migration / generalization tracing

BUG=
R=ishell@chromium.org

Review URL: https://codereview.chromium.org/176713006

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix A64 after 19635.

TBR=yangguo@chromium.org

Review URL: https://codereview.chromium.org/184103013

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Make EvictFromOptimizedCodeMap more robust.

This removes all occurences of the specified optimized code from the optimized
code map.

R=titzer@chromium.org, yangguo@chromium.org

Review URL: https://codereview.chromium.org/181493004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Consolidate RecordWriteFromCode and RecordWriteForEvacuationFromCode.

BUG=
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/185233008

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Merge remote-tracking branch 'upstream/bleeding_edge' into bleeding_edge