Remove deoptimization by patching the call stack.
authorjarin@chromium.org <jarin@chromium.org>
Mon, 15 Sep 2014 09:21:39 +0000 (09:21 +0000)
committerjarin@chromium.org <jarin@chromium.org>
Mon, 15 Sep 2014 09:21:39 +0000 (09:21 +0000)
commit00e90b7e6e841fa9c902ae6b9c84f4e901453768
tree8f21f7f72babe3db3e8e6eee62657af9019ebb4c
parentb2a8ad2c6930fa882d9f0eb605a1843ba55a9e69
Remove deoptimization by patching the call stack.

We go back to patching the code for lazy deoptimization because ICs need the on-stack return address to read/update the IC address/state.

The change also fixes bunch of tests, mostly by adding more deoptimization points.

(We still need to add code to ensure lazy deopt patching does not overwrite ICs and other lazy deopts; this is coming next.)

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
12 files changed:
src/compiler/ast-graph-builder.cc
src/compiler/code-generator.cc
src/compiler/code-generator.h
src/compiler/linkage.cc
src/deoptimizer.cc
src/deoptimizer.h
src/objects.cc
src/safepoint-table.cc
src/safepoint-table.h
test/cctest/compiler/function-tester.h
test/cctest/compiler/test-js-typed-lowering.cc
test/mjsunit/regress/poly_count_operation.js