v8/test/mjsunit/compiler
jarin@chromium.org acf24331e3 Fixed Lithium environment generation bug for captured objects (created
by escape analysis). Added several tests that expose the bug.

Summary:
LCodegen::AddToTranslation assumes that Lithium environments are
generated by depth-first traversal, but LChunkBuilder::CreateEnvironment
was generating them in breadth-first fashion. This fixes the
CreateEnvironment to traverse the captured objects depth-first.

Note:
It might be worth considering representing LEnvironment by a list
with the same order as the serialized translation representation
rather than having two lists with a subtle relationship between
them (and then serialize in a slightly different order again).

R=titzer@chromium.org, mstarzinger@chromium.org
LOG=N
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-07 14:36:26 +00:00
..
alloc-number.js Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
alloc-object-huge.js Allow multiple lines of custom flags in javascript tests. 2012-08-10 12:26:33 +00:00
alloc-object.js Use explicit type feedback clearing in some tests. 2013-05-22 09:17:27 +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_map_elim.js Check elimination: Learn from if(CompareMap(x)) on true branch. 2013-12-02 18:34:33 +00:00
compare_objeq_elim.js Improve check elimination with branch sensitivity on HCompareObjectEqAndBranch. 2013-12-19 17:42:21 +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
concurrent-invalidate-transition-map.js Refactor the compiling pipeline. 2013-12-23 14:30:35 +00:00
concurrent-proto-change.js Refactor the compiling pipeline. 2013-12-23 14:30:35 +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 Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +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
dead-code2.js Improve dead code elimination by transitively marking live code and removing all dead code. Replace unreachable phi removal algorithm with the new dead code elimination pass, which is more thorough. 2013-05-14 13:10:52 +00:00
dead-code3.js Improve dead code elimination by transitively marking live code and removing all dead code. Replace unreachable phi removal algorithm with the new dead code elimination pass, which is more thorough. 2013-05-14 13:10:52 +00:00
dead-code4.js Improve dead code elimination by transitively marking live code and removing all dead code. Replace unreachable phi removal algorithm with the new dead code elimination pass, which is more thorough. 2013-05-14 13:10:52 +00:00
dead-code5.js Improve dead code elimination by transitively marking live code and removing all dead code. Replace unreachable phi removal algorithm with the new dead code elimination pass, which is more thorough. 2013-05-14 13:10:52 +00:00
dead-code6.js Improve dead code elimination by transitively marking live code and removing all dead code. Replace unreachable phi removal algorithm with the new dead code elimination pass, which is more thorough. 2013-05-14 13:10:52 +00:00
dead-code.js Improve dead code elimination by transitively marking live code and removing all dead code. Replace unreachable phi removal algorithm with the new dead code elimination pass, which is more thorough. 2013-05-14 13:10:52 +00:00
dead-loops-neg.js Add some test cases with dead loops. 2013-12-03 18:04:45 +00:00
dead-loops.js Add some test cases with dead loops. 2013-12-03 18:04:45 +00:00
dead-string-add-warm.js Fix IsDeletable() for HStringAdd, HStringCharCodeAt, HStringCharFromCode. 2013-07-29 12:35:43 +00:00
dead-string-add.js Fix IsDeletable() for HStringAdd, HStringCharCodeAt, HStringCharFromCode. 2013-07-29 12:35:43 +00:00
dead-string-char-code-at2.js Fix IsDeletable() for HStringAdd, HStringCharCodeAt, HStringCharFromCode. 2013-07-29 12:35:43 +00:00
dead-string-char-code-at.js Fix IsDeletable() for HStringAdd, HStringCharCodeAt, HStringCharFromCode. 2013-07-29 12:35:43 +00:00
dead-string-char-from-code.js Fix IsDeletable() for HStringAdd, HStringCharCodeAt, HStringCharFromCode. 2013-07-29 12:35:43 +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
escape-analysis-representation.js Fix materialization of captured objects with field tracking. 2013-10-22 13:48:54 +00:00
escape-analysis.js Fixed Lithium environment generation bug for captured objects (created 2014-01-07 14:36:26 +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 Tune mjsunit/compiler/expression-trees. 2013-10-28 07:24:19 +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
increment-typefeedback.js H-BuildIncrement should make use of available type feedback 2013-08-27 11:44:45 +00:00
inline-accessors.js Deoptimization support for accessors. 2012-08-17 10:43:32 +00:00
inline-arguments.js Fix %NeverOptimizeFunction runtime call. 2013-07-19 08:25:44 +00:00
inline-arity-mismatch.js Support inlining at call-sites with mismatched number of arguments. 2012-01-24 08:43:12 +00:00
inline-closures.js Allow inlining of multiple closures from shared function. 2013-01-25 16:55:00 +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-construct.js Extend constructor inlining test case. 2012-08-16 09:13:25 +00:00
inline-context-slots.js Enable inlining of functions that reference context slots. 2011-09-15 10:57:47 +00:00
inline-function-apply.js Fix f.apply() optimization when declared arguments are mutated. 2013-02-14 15:12:49 +00:00
inline-global-access.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
inline-literals.js Allow inlining of functions containing function literals. 2013-03-14 14:29:10 +00:00
inline-param.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
inline-throw.js Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +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 Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +00:00
literals-assignment.js Support for object literals in fast compiler. 2009-10-26 13:21:48 +00:00
literals-optimized.js Implement fast literal support in Crankshaft. 2012-02-16 17:32:30 +00:00
literals.js Fix illegal escape-sequences to throw syntax errors. 2012-04-16 15:54:02 +00:00
load-elimination-global.js Implement global load elimination based on flow engine. 2013-10-18 14:28:24 +00:00
load-elimination-osr.js Implement global load elimination based on flow engine. 2013-10-18 14:28:24 +00:00
load-elimination-params.js Fix load elimination: can only .Equals() GVN-able instructions. 2013-11-28 15:27:42 +00:00
load-elimination.js Improve load elimination handling of transitioning stores. 2013-12-20 12:12:41 +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
manual-concurrent-recompile.js Retire concurrent recompilation delay for non-stress testing. 2013-10-14 14:15:22 +00:00
math-floor-global.js Speed up long-running test cases. 2013-11-26 11:32:39 +00:00
math-floor-local.js Speed up long-running test cases. 2013-11-26 11:32:39 +00:00
minus-zero.js Introduce %_IsMinusZero. 2013-11-12 11:53:13 +00:00
multiply-add.js Emit VMLA for multiply-add on ARM 2012-11-14 11:01:18 +00:00
multiply-sub.js Emit VMLS for multiply-subtract on ARM. 2013-02-27 10:24:40 +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
optimize-bitnot.js Optimize ~~(expr) in optimized code. 2012-04-19 13:24:15 +00:00
optimized-closures.js Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +00:00
optimized-for-in.js Introduce concurrent on-stack replacement. 2013-09-04 12:55:59 +00:00
optimized-function-calls.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
osr-alignment.js Dynamically align OSR frames on ia32. 2013-09-18 16:05:39 +00:00
osr-assert.js Generate a custom OSR entrypoint for OSR compiles on all platforms, and transition to optimized code using the special entrypoint, instead of through the deoptimizer. Do not install the OSR compiled code as _the_ optimized code for a function. 2013-09-09 16:34:40 +00:00
osr-big.js Change PC for OSR entries to point to something more sensible (i.e. the first UnknownOsrValue), removing the need to record spilled OSR values and the need for duplicate deopt entries. 2013-06-26 08:43:27 +00:00
osr-nested.js Change PC for OSR entries to point to something more sensible (i.e. the first UnknownOsrValue), removing the need to record spilled OSR values and the need for duplicate deopt entries. 2013-06-26 08:43:27 +00:00
osr-one.js Change PC for OSR entries to point to something more sensible (i.e. the first UnknownOsrValue), removing the need to record spilled OSR values and the need for duplicate deopt entries. 2013-06-26 08:43:27 +00:00
osr-regress-max-locals.js Change PC for OSR entries to point to something more sensible (i.e. the first UnknownOsrValue), removing the need to record spilled OSR values and the need for duplicate deopt entries. 2013-06-26 08:43:27 +00:00
osr-sar.js Generate a custom OSR entrypoint for OSR compiles on all platforms, and transition to optimized code using the special entrypoint, instead of through the deoptimizer. Do not install the OSR compiled code as _the_ optimized code for a function. 2013-09-09 16:34:40 +00:00
osr-simple.js Change PC for OSR entries to point to something more sensible (i.e. the first UnknownOsrValue), removing the need to record spilled OSR values and the need for duplicate deopt entries. 2013-06-26 08:43:27 +00:00
osr-two.js Change PC for OSR entries to point to something more sensible (i.e. the first UnknownOsrValue), removing the need to record spilled OSR values and the need for duplicate deopt entries. 2013-06-26 08:43:27 +00:00
osr-uint32.js Generate a custom OSR entrypoint for OSR compiles on all platforms, and transition to optimized code using the special entrypoint, instead of through the deoptimizer. Do not install the OSR compiled code as _the_ optimized code for a function. 2013-09-09 16:34:40 +00:00
osr-warm.js Generate a custom OSR entrypoint for OSR compiles on all platforms, and transition to optimized code using the special entrypoint, instead of through the deoptimizer. Do not install the OSR compiled code as _the_ optimized code for a function. 2013-09-09 16:34:40 +00:00
osr-with-args.js Make some ARM test cases faster. 2013-11-26 10:43:44 +00:00
phi-representations.js Add a test case for Phi representations 2013-07-08 13:43:43 +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-static.js Allow monomorphic loads when static type is known. 2013-01-24 17:54:30 +00:00
property-stores.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
proto-chain-constant.js Allow loading constant function from proto chain. 2013-01-22 12:03:35 +00:00
proto-chain-load.js Improve handling of property loads on the proto chain. 2012-11-05 08:53:54 +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 Speed up long-running test cases. 2013-11-26 11:32:39 +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 Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +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-106351.js Fix a bug with register use in optimized Math.round. 2011-12-07 10:13:46 +00:00
regress-177883.js Fixed register allocation corner case. 2013-03-11 09:49:00 +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 Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +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 Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +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 Support inlining at call-sites with mismatched number of arguments. 2012-01-24 08:43:12 +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 Speed up test/mjsunit/compiler/regress-gvn 2012-09-24 10:07:09 +00:00
regress-inline-callfunctionstub.js Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +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.js Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization. 2011-04-11 13:24:50 +00:00
regress-or.js Speed up test/mjsunit/compiler/regress-or 2012-09-24 10:08:01 +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-shared-deopt.js Fix deoptimization bug, where recursive call can frighten and confuse the unwitting, simple, poor caveman that is Runtime_NotifyDeoptimized. 2013-08-22 13:03:40 +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-toint32.js Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +00:00
regress-valueof.js Fix bug with input representation of HValueOf. 2011-02-22 12:14:53 +00:00
rotate.js Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +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
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
type-feedback-after-throw.js Make VisitStatements() consistent among all AstVisitor implementations 2013-08-30 10:51:37 +00:00
uint32.js Fix DoDeferredNumberTagU to keep the value in xmm1 instead of xmm0 on x64. 2012-08-23 16:14:01 +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