Go to file
fschneider@chromium.org 8480569467 Fix lazy deoptimization at HInvokeFunction and enable target-recording call-function stub.
Changes the way we do lazy deoptimization:

1. For side-effect instructions, we insert the lazy-deopt call at
the following LLazyBailout instruction.

     CALL
     GAP
     LAZY-BAILOUT ==> lazy-deopt-call

2. For other instructions (StackCheck) we insert it right after the
instruction since the deopt targets an earlier deoptimization environment.

   STACK-CHECK
   GAP ==> lazy-deopt-call

The pc of the lazy-deopt call that will be patched in is recorded in the
deoptimization input data. Each Lithium instruction can have 0..n safepoints.
All safepoints get the deoptimization index of the associated LAZY-BAILOUT
instruction. On lazy deoptimization we use the return-pc to find the safepoint.
The safepoint tells us the deoptimization index, which in turn finds us the
PC where to insert the lazy-deopt-call.

Additional changes:
 * RegExpLiteral marked it as having side-effects so that it 
   gets an explicitlazy-bailout instruction (instead of
   treating it specially like stack-checks)
 * Enable target recording CallFunctionStub to achieve
   more inlining on optimized code.

BUG=v8:1789
TEST=jslint and uglify run without crashing, mjsunit/compiler/regress-lazy-deopt.js
Review URL: http://codereview.chromium.org/8492004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-16 08:44:30 +00:00
benchmarks Fix presubmit errors introduced by r10002. 2011-11-16 01:44:17 +00:00
build MIPS: Initial gyp infrastructure for MIPS architecture. 2011-11-09 15:31:54 +00:00
include Add getters for column number and script id to v8::Function 2011-11-09 14:18:30 +00:00
preparser Ignore flags with arguments in preparser-process. 2011-10-14 07:34:45 +00:00
samples Fix presubmit errors caused by updated depot tools 2011-09-08 19:57:14 +00:00
src Fix lazy deoptimization at HInvokeFunction and enable target-recording call-function stub. 2011-11-16 08:44:30 +00:00
test Fix lazy deoptimization at HInvokeFunction and enable target-recording call-function stub. 2011-11-16 08:44:30 +00:00
tools Add -e to echo in push-to-trunk.sh to print \t properly 2011-11-15 12:47:37 +00:00
.gitignore Add *.so to .gitignore. 2011-09-07 21:09:13 +00:00
AUTHORS Debugger: fix stepping next with trycatch recursion 2011-09-13 14:38:39 +00:00
ChangeLog Prepare push to trunk. Now working on version 3.7.8. 2011-11-14 13:31:57 +00:00
LICENSE Fix the license info to correctly state Copyright "the V8 project 2011-01-19 09:20:18 +00:00
LICENSE.strongtalk Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.v8 Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.valgrind Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
Makefile Add MIPS support to top-level Makefile 2011-11-09 16:18:36 +00:00
SConstruct Allow snapshots to be generated without using vfp3 code on arm. 2011-08-10 11:14:32 +00:00