v8/test/mjsunit/compiler
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
..
alloc-number.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
array-access.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
array-length.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
assignment-deopt.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
assignment.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
binary-ops.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
call-keyed.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
compare.js Fix evaluation order of GT and LTE operators. 2011-10-17 07:43:40 +00:00
complex-for-in.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
control-flow-0.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
control-flow-1.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
control-flow-2.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
count-deopt.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
countoperation.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
delete.js Remove variable rewrites and the unneccesary Slot class. 2011-09-07 11:02:31 +00:00
deopt-args.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
deopt-inlined-smi.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
eval-introduced-closure.js Allow closures to be optimized if outer contexts that call eval are all in strict mode. 2011-05-11 11:26:11 +00:00
expression-trees.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
for-stmt.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
function-call.js Support for function calls on an arbitrary expression that returns 2009-11-02 12:04:35 +00:00
global-accessors.js Added check for trailing whitespaces and corrected existing violations. 2011-09-01 11:28:10 +00:00
globals.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
inline-arguments.js Add a simple test for inlining of arguments accesses. 2011-05-26 11:17:15 +00:00
inline-compare.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
inline-conditional.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
inline-context-slots.js Enable inlining of functions that reference context slots. 2011-09-15 10:57:47 +00:00
inline-global-access.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
inline-param.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
inline-throw.js Enable inlining functions containing throw. 2011-04-13 13:09:58 +00:00
inline-two.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
jsnatives.js Added fast compiler support for calling JS runtime functions. 2009-11-27 00:28:06 +00:00
lazy-const-lookup.js Reapply r9870 "Remove some initialization checks based on source positions.". 2011-11-08 13:28:53 +00:00
literals-assignment.js Support for object literals in fast compiler. 2009-10-26 13:21:48 +00:00
literals.js Fix bug in object literals with large array indexes as strings. 2011-02-02 14:02:58 +00:00
logical-and.js Cleanup of mjsunit.js code and make assertEquals more strict. 2011-04-15 11:35:36 +00:00
logical-or.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
loopcount.js Fix code generation for fast smi loops to support parameters as well. 2010-03-22 11:55:12 +00:00
loops.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
null-compare.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
objectliterals.js Fix bug in the fast compiler's object literal code 2009-11-26 21:13:20 +00:00
optimized-function-calls.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
pic.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
property-calls.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
property-refs.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
property-simple.js Support for property access (named, keyed) in the fast compiler. 2009-10-27 16:11:12 +00:00
property-stores.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
recursive-deopt.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
regress-0.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-1.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-2.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-3.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-4.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-5.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-6.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-7.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-8.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-1085.js Replace loops by OptimizeFunctionOnNextCall in regress-1085 and regress-1210. 2011-05-06 09:10:28 +00:00
regress-1394.js Fix bug in optimized compiler's switch-statement. 2011-05-18 11:06:07 +00:00
regress-96989.js Fix a bug with uninitialized const variables in the optimizing compiler. 2011-09-20 10:26:01 +00:00
regress-3136962.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-3185901.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-3218915.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
regress-3249650.js Speed up a regression test regress-3249650.js so it does not timeout. 2011-01-07 13:52:36 +00:00
regress-3260426.js Be more careful about exiting inlined functions in a test context. 2010-12-07 12:07:40 +00:00
regress-arguments.js Make optimized Function.prototype.apply safe for non-JSObject first arguments. 2011-02-09 16:43:23 +00:00
regress-arrayliteral.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-closures-with-eval.js Replace long running loops by OptimizeFunctionOnNextCall in some tests that are often timing out on ARM. 2011-05-03 13:53:08 +00:00
regress-const.js Fix timeout and a small bug in a regression test. 2011-05-30 12:48:35 +00:00
regress-deopt-call-as-function.js Speedup unit test to avoid timeout on slow ARM simulator. 2011-11-14 12:33:44 +00:00
regress-funarguments.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-funcaller.js Fix lazy deoptimization at HInvokeFunction and enable target-recording call-function stub. 2011-11-16 08:44:30 +00:00
regress-gap.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-gvn.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-inline-callfunctionstub.js Fix bug in inlining call-as-function when inlining multiple levels deep. 2011-10-26 10:31:06 +00:00
regress-intoverflow.js Replace long running loops by OptimizeFunctionOnNextCall in some tests that are often timing out on ARM. 2011-05-03 13:53:08 +00:00
regress-lazy-deopt.js Fix lazy deoptimization at HInvokeFunction and enable target-recording call-function stub. 2011-11-16 08:44:30 +00:00
regress-lbranch-double.js Fixed code generation for LBranch on ARM when the operand's representation is double. 2011-08-02 15:14:12 +00:00
regress-loadfield.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
regress-loop-deopt.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-max-locals-for-osr.js Correct the limit of local variables in a optimized functions. 2011-06-09 14:52:58 +00:00
regress-max.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
regress-or.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-rep-change.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-serialized-slots.js Properly create variables to access outer arguments and function names. 2011-01-19 08:16:17 +00:00
regress-stacktrace-methods.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
regress-stacktrace.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
regress-valueof.js Fix bug with input representation of HValueOf. 2011-02-22 12:14:53 +00:00
safepoint.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
short-circuit.js Introduce 'top-of-stack caching' to the toplevel code generator by 2010-01-18 14:04:55 +00:00
simple-bailouts.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
simple-binary-op.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
simple-deopt.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
simple-global-access.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
simple-inlining.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
simple-osr.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
strict-recompile.js Replace boolean indications of strict mode by an enum value. 2011-10-24 07:47:22 +00:00
switch-bailout.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
this-property-refs.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
thisfunction.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
unary-add.js Implement unary addition in the full (non-optimizing) code generator. 2010-01-26 13:57:11 +00:00
variables.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00