v8/test/mjsunit/compiler
bmeurer 9dbafbd5d3 [turbofan] Add support for inlining accessors into try-blocks.
Previously the inlining of accessors into try-blocks (i.e. try/catch,
try/finally, for-of, etc.) was disabled in JSNativeContextSpecialization,
which prevented a couple of interesting optimizations, i.e. we end up
with a LOAD_IC in optimized code for this simple example:

  class A { get x() { return 1; } }
  function foo(a) {
    try {
      return a.x;
    } catch (e) {
      return 0;
    }
  }
  foo(new A)

This is now fixed and the accessors are properly rewired into the
handler chain.

BUG=v8:6278,v8:6344,v8:6424
R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2902533003
Cr-Commit-Position: refs/heads/master@{#45485}
2017-05-23 12:02:28 +00:00
..
accessor-exceptions1.js [turbofan] Fix various bailout points for AstGraphBuilder. 2016-08-01 06:18:48 +00:00
accessor-exceptions2.js [turbofan] Fix various bailout points for AstGraphBuilder. 2016-08-01 06:18:48 +00:00
alloc-number-debug.js
alloc-number.js
alloc-object-huge.js
alloc-object.js [runtime][tests] More *TypeFeedbackVector* -> *FeedbackVector* renamings. 2017-02-15 08:53:51 +00:00
array-access.js
array-constructor.js [test] Increase test coverage for Array constructor inlining. 2017-04-26 17:36:32 +00:00
array-length.js
assignment-deopt.js
assignment.js
binary-ops.js
boolean-protototype.js
call-keyed.js
capture-context.js [turbofan] Remove inlining support for the deprecated pipeline. 2016-11-24 07:59:59 +00:00
compare-map-elim2.js
compare-map-elim.js
compare-objeq-elim.js
compare.js
complex-for-in.js
concurrent-invalidate-transition-map.js [runtime][tests] More *TypeFeedbackVector* -> *FeedbackVector* renamings. 2017-02-15 08:53:51 +00:00
concurrent-proto-change.js [runtime][tests] More *TypeFeedbackVector* -> *FeedbackVector* renamings. 2017-02-15 08:53:51 +00:00
constructor-inlining-no-harmony-restrict-constructor-return.js [turbofan] [builtins] Unify construct builtins for JS functions and classes and add inlining and deoptimizer support 2017-05-10 13:17:13 +00:00
constructor-inlining.js [turbofan] [builtins] Unify construct builtins for JS functions and classes and add inlining and deoptimizer support 2017-05-10 13:17:13 +00:00
control-flow-0.js
control-flow-1.js
control-flow-2.js
count-deopt.js
countoperation.js
dead-code2.js
dead-code3.js
dead-code4.js
dead-code5.js
dead-code6.js
dead-code.js
dead-loops-neg.js
dead-loops.js
dead-string-add-warm.js
dead-string-add.js
dead-string-char-code-at2.js
dead-string-char-code-at.js
delete.js
deopt-accessors1.js [turbofan] Fix various bailout points for AstGraphBuilder. 2016-08-01 06:18:48 +00:00
deopt-accessors2.js [turbofan] Fix various bailout points for AstGraphBuilder. 2016-08-01 06:18:48 +00:00
deopt-accessors3.js [turbofan] Fix various bailout points for AstGraphBuilder. 2016-08-01 06:18:48 +00:00
deopt-accessors4.js [turbofan] Fix various bailout points for AstGraphBuilder. 2016-08-01 06:18:48 +00:00
deopt-accessors5.js [turbofan] Fix various bailout points for AstGraphBuilder. 2016-08-01 06:18:48 +00:00
deopt-accessors6.js [turbofan] Fix various bailout points for AstGraphBuilder. 2016-08-01 06:18:48 +00:00
deopt-accessors7.js [turbofan] Fix various bailout points for AstGraphBuilder. 2016-08-01 06:18:48 +00:00
deopt-args.js
deopt-bool2.js
deopt-bool.js
deopt-during-eval-lookup.js
deopt-inlined-from-call.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
deopt-inlined-smi.js
deopt-materialize-accumulator.js [builtins] Unify most of the remaining Math builtins. 2016-07-01 11:13:02 +00:00
deopt-numberoroddball-binop.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
deopt-string-outofbounds.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
deopt-tonumber-binop.js
deopt-tonumber-compare.js
deopt-tonumber-shift.js
division-by-constant.js
dont-constant-fold-deopting-checks.js [turbofan] Add dedicated test for check constant folding. 2016-06-22 08:20:50 +00:00
double-array-to-global.js
eager-deopt-simple.js
escape-analysis-1.js
escape-analysis-2.js
escape-analysis-3.js
escape-analysis-4.js
escape-analysis-5.js
escape-analysis-6.js
escape-analysis-7.js
escape-analysis-8.js
escape-analysis-9.js
escape-analysis-10.js
escape-analysis-11.js [turbofan] No longer ignore FrameState input to Call 2017-01-27 12:40:05 +00:00
escape-analysis-12.js [turbofan] escape analysis reducer no longer confused by TypeGuards it introduced itself 2017-01-30 11:51:22 +00:00
escape-analysis-13.js [turbofan] extend escape analysis to reduce CheckMaps 2017-02-28 12:44:01 +00:00
escape-analysis-15.js [turbofan] escape analysis: revisit of uses afer FinishRegion marked as escaped 2017-03-24 11:21:07 +00:00
escape-analysis-16.js [turbofan] fix escape analysis divergence on Air benchmark 2017-05-05 09:33:17 +00:00
escape-analysis-arguments.js
escape-analysis-deopt-1.js
escape-analysis-deopt-2.js
escape-analysis-deopt-3.js
escape-analysis-deopt-4.js
escape-analysis-deopt-5.js
escape-analysis-deopt-6.js [turbofan] Test for FixedDoubleArray materialization. 2017-01-11 11:30:43 +00:00
escape-analysis-framestate-use-at-branchpoint.js [turbofan] fixed escape analysis bug: missing copy of virtual state 2016-12-20 10:30:52 +00:00
escape-analysis-materialize.js [deoptimizer] Materialize JSFunction objects without context. 2016-09-08 12:15:50 +00:00
escape-analysis-replacement.js [turbofan] fixed escape analysis crash because of incomplete replacements 2016-12-13 16:25:30 +00:00
escape-analysis-representation.js [mjsunit] Remove non-existing flags from tests. 2017-05-02 08:53:51 +00:00
escape-analysis.js
eval-introduced-closure.js
expression-trees.js
feedback-after-throw.js Rename TypeFeedbackVector to FeedbackVector. 2017-02-07 14:46:36 +00:00
for-stmt.js
function-call.js
generic-add.js
global-accessors.js
global-delete.js
global-var-delete.js
globals.js
increment-typefeedback.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
inline-accessors1.js [turbofan] Add support for inlining accessors into try-blocks. 2017-05-23 12:02:28 +00:00
inline-accessors2.js [turbofan] Add support for inlining accessors into try-blocks. 2017-05-23 12:02:28 +00:00
inline-arguments.js [mjsunit] Remove non-existing flags from tests. 2017-05-02 08:53:51 +00:00
inline-arity-mismatch.js
inline-closures.js
inline-compare.js
inline-conditional.js
inline-construct.js [runtime][tests] More *TypeFeedbackVector* -> *FeedbackVector* renamings. 2017-02-15 08:53:51 +00:00
inline-context-deopt.js [turbofan] Remove inlining support for the deprecated pipeline. 2016-11-24 07:59:59 +00:00
inline-context-slots.js
inline-dead-jscreate.js
inline-exception-1.js [turbofan] Improve inline-exception tests. 2016-08-29 11:17:16 +00:00
inline-exception-2.js [turbofan] Improve inline-exception tests. 2016-08-29 11:17:16 +00:00
inline-function-apply.js [runtime][tests] More *TypeFeedbackVector* -> *FeedbackVector* renamings. 2017-02-15 08:53:51 +00:00
inline-global-access.js
inline-literals.js
inline-omit-arguments-deopt.js [turbofan] Remove inlining support for the deprecated pipeline. 2016-11-24 07:59:59 +00:00
inline-omit-arguments-object.js [turbofan] Remove inlining support for the deprecated pipeline. 2016-11-24 07:59:59 +00:00
inline-omit-arguments.js [turbofan] Remove inlining support for the deprecated pipeline. 2016-11-24 07:59:59 +00:00
inline-param.js
inline-surplus-arguments-deopt.js [turbofan] Remove inlining support for the deprecated pipeline. 2016-11-24 07:59:59 +00:00
inline-surplus-arguments-object.js [turbofan] Remove inlining support for the deprecated pipeline. 2016-11-24 07:59:59 +00:00
inline-surplus-arguments.js [turbofan] Remove inlining support for the deprecated pipeline. 2016-11-24 07:59:59 +00:00
inline-throw.js
inline-two.js
inlined-array-pop-getter1.js [turbofan] Add inlined Array.prototype.pop support. 2016-08-11 13:13:21 +00:00
inlined-array-pop-getter2.js [turbofan] Add inlined Array.prototype.pop support. 2016-08-11 13:13:21 +00:00
inlined-array-pop-opt.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
inlined-call-mapcheck.js
inlined-call.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
instanceof-opt1.js [turbofan] Add appropriate types to express Callable. 2016-11-29 10:48:13 +00:00
instanceof-opt2.js [turbofan] Add appropriate types to express Callable. 2016-11-29 10:48:13 +00:00
instanceof-opt3.js [turbofan] Also optimize instanceof with bound functions. 2016-11-29 11:58:55 +00:00
instanceof.js [turbofan] Constant-fold certain JSOrdinaryHasInstance nodes. 2017-04-19 14:38:11 +00:00
integral32-add-sub.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
lazy-const-lookup.js
lazy-deopt-in-literal.js
lazy-iife-no-parens.js
literals-assignment.js
literals-optimized.js
literals.js [parser] Lift template literal invalid escape restriction 2017-02-22 21:20:32 +00:00
load-elimination-global.js
load-elimination-osr.js
load-elimination-params.js
load-elimination.js
logical-and.js
logical-or.js
loopcount.js
loops.js
manual-concurrent-recompile.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
math-floor-global.js
math-floor-local.js
math-mul.js [Turbofan] Make the -0 deopt case more efficient in multiplication. 2016-07-25 12:15:22 +00:00
math-sign.js [turbofan] Fix Math.sign. 2016-09-01 10:26:12 +00:00
minus-zero.js
mul-div-52bit.js
multiply-add.js
multiply-sub.js
named-load.js
named-store.js
null-compare.js
number-isfinite.js [builtins] Migrate Number predicates and make them optimizable. 2016-09-07 10:14:40 +00:00
number-isinteger.js [builtins] Migrate Number predicates and make them optimizable. 2016-09-07 10:14:40 +00:00
number-isnan.js [builtins] Migrate Number predicates and make them optimizable. 2016-09-07 10:14:40 +00:00
number-issafeinteger.js [builtins] Migrate Number predicates and make them optimizable. 2016-09-07 10:14:40 +00:00
object-getprototypeof.js [turbofan] Also constant-fold Object.getPrototypeOf if possible. 2017-04-24 05:37:45 +00:00
objectliterals.js
opt-next-call-turbo.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
opt-next-call.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
optimize_max.js
optimize_min.js
optimize-bitnot.js
optimized-closures.js
optimized-float32array-length.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
optimized-float64array-length.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
optimized-for-in.js [fullcodegen] [crankshaft] Avoid jumping to the runtime for ForInFilter 2016-07-21 09:34:11 +00:00
optimized-function-calls.js
optimized-instanceof-1.js Remove all harmony runtime flags which shipped in M51 2016-06-24 01:13:10 +00:00
optimized-instanceof-2.js Remove all harmony runtime flags which shipped in M51 2016-06-24 01:13:10 +00:00
optimized-int32array-length.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
optimized-uint32array-length.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
osr-alignment.js
osr-array-len.js
osr-assert.js
osr-backedges1.js
osr-big.js
osr-block-scope-func.js
osr-block-scope-id.js
osr-block-scope.js
osr-follow.js
osr-for-let.js
osr-forin-nested.js
osr-forin.js
osr-forof.js
osr-function-id2.js
osr-function-id.js
osr-function.js
osr-infinite.js [interpreter] Switch profiler to use frames for OSR. 2016-08-10 15:59:31 +00:00
osr-labeled.js
osr-literals-adapted.js
osr-literals.js
osr-manual1.js
osr-manual2.js
osr-maze1.js
osr-maze2.js
osr-multiple2.js
osr-multiple3.js
osr-multiple.js
osr-nested2.js
osr-nested2b.js
osr-nested3.js
osr-nested3b.js
osr-nested.js
osr-one.js
osr-regex-id.js
osr-regress-max-locals.js
osr-sar.js
osr-simple.js
osr-top1.js
osr-top2.js
osr-top3.js
osr-two.js
osr-uint32.js
osr-warm.js
osr-while-let.js
osr-with-args.js
phi-representations.js
pic.js
property-calls.js
property-refs.js
property-simple.js
property-static.js
property-stores.js
proto-chain-constant.js
proto-chain-load.js
receiver-conversion.js
recursive-deopt.js
reflect-getprototypeof.js [turbofan] Also constant-fold Object.getPrototypeOf if possible. 2017-04-24 05:37:45 +00:00
regress-0.js
regress-1.js
regress-2.js
regress-3.js
regress-4.js
regress-5.js
regress-6.js
regress-7.js
regress-8.js
regress-1085.js
regress-1394.js
regress-3786.js
regress-3812.js
regress-4206.js
regress-4207.js
regress-4389-1.js
regress-4389-2.js
regress-4389-3.js
regress-4389-4.js
regress-4389-5.js
regress-4389-6.js
regress-4413-1.js
regress-4470-1.js
regress-5074.js [crankshaft] Fix invalid number truncation assumption on HAdd inputs. 2016-06-08 03:56:22 +00:00
regress-5100.js [turbofan] Introduce a dedicated CheckBounds operator. 2016-06-15 13:07:22 +00:00
regress-5129.js [turbofan] x - y < 0 is not equivalent to x < y. 2016-06-22 05:38:36 +00:00
regress-5158.js [arm64] We must not overwrite registers for binop results that are used in frame states. 2016-06-28 10:11:13 +00:00
regress-5278.js [turbofan] Fix CheckedInt32Mod lowering. 2016-08-10 09:24:59 +00:00
regress-5320.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
regress-5538.js [turbofan] Fix invalid Number.parseInt inlining. 2016-10-19 05:17:52 +00:00
regress-106351.js
regress-177883.js
regress-411262.js
regress-416359.js
regress-439743.js
regress-443744.js
regress-444508.js
regress-444695.js
regress-445267.js
regress-445732.js
regress-445858.js
regress-445859.js
regress-445876.js
regress-445907.js
regress-446156.js
regress-446647.js
regress-446778.js
regress-447567.js
regress-451012.js
regress-452427.js
regress-463056.js
regress-468162.js
regress-468727.js
regress-469089.js
regress-491578.js
regress-572409.js
regress-600593.js
regress-607493.js
regress-621147.js [turbofan] Set elements kind to holey if constructing array of possibly non-zero length. 2016-07-06 07:55:36 +00:00
regress-621423.js [turbofan] Only consider inhabited types for constant folding in typed lowering. 2016-06-20 07:56:29 +00:00
regress-625558.js [turbofan] Better handling of empty type in simplified lowering. 2016-07-04 08:43:12 +00:00
regress-625966.js [turbofan] Check instruction input/output count limits in instruction selector. 2016-10-05 05:43:35 +00:00
regress-626986.js [turbofan] Fix deopt check for storing into constant field. 2016-11-15 13:17:13 +00:00
regress-628403.js [turbofan] In effect control linearizer, only delay effect phi update for loops. 2016-07-16 12:39:14 +00:00
regress-628516.js [turbofan] Add re-typing for PlainPrimitiveToNumber during representation inference. 2016-07-15 10:37:27 +00:00
regress-628773.js [turbofan] Eliminate checkpoints before return in common op reducer. 2016-07-18 11:56:54 +00:00
regress-630611.js [turbofan] Handle impossible types (Type::None()) in the backend. 2016-07-25 04:02:58 +00:00
regress-633497.js [turbofan] Only do value numbering when types are compatible. 2016-08-17 08:45:26 +00:00
regress-638132.js Reland of [turbofan] Insert dummy values when changing from None type. 2016-08-25 16:58:13 +00:00
regress-639210.js [turbofan] Fix merging of empty and non-empty state in load elimination. 2016-08-24 17:14:24 +00:00
regress-644048.js [turbofan] Don't propagate truncations if output is tagged. 2016-09-05 20:54:56 +00:00
regress-644633.js [turbofan] Ensure monotonicity for induction variable typing. 2016-09-08 03:51:11 +00:00
regress-645851.js [turbofan] Another fix for induction variable typing monotonicity. 2016-09-12 17:05:11 +00:00
regress-650215.js [turbofan] Fix restriction type for modulus in representation inference. 2016-09-26 11:45:07 +00:00
regress-664117.js [turbofan] Fix representation changes for unsigned values used as checked-signed values. 2016-11-22 12:07:45 +00:00
regress-664490.js Reland of [turbofan] Fix deoptimization of boolean bit constants. (patchset #1 id:1 of https://codereview.chromium.org/2495243002) 2016-11-15 13:55:57 +00:00
regress-665680.js [Turbofan] Fix missing break on AstGraphBuilder VisitCall. 2016-11-16 13:46:42 +00:00
regress-668760.js [deoptimizer] Use the correct function for handler lookup for bytecode. 2016-11-28 12:45:29 +00:00
regress-669517.js [Turbofan] Disable JSFrameSpecialization for interpreted frames. 2016-11-30 14:03:51 +00:00
regress-671574.js [turbofan] Fix skipping of translations for lazy deopt return value stores. 2016-12-07 08:31:40 +00:00
regress-673244.js [turbofan] Fix representation change from bit to tagged pointer. 2016-12-12 09:36:47 +00:00
regress-674469.js [turbofan] Handle the impossible value representation mismatch in instruction selector. 2016-12-15 12:13:06 +00:00
regress-675704.js [turbofan] Only use Tagged machine representation for tagged state values. 2017-01-28 17:25:46 +00:00
regress-693425.js [turbofan] Handle Smi -> Float32 conversion in representation changer. 2017-03-15 07:44:59 +00:00
regress-694088.js [turbofan] Fix regress-694088.js for big endian. 2017-03-13 12:59:48 +00:00
regress-700883.js [turbofan] Fix typing for NumberMin and NumberMax to handle uninhabited types. 2017-03-15 07:46:25 +00:00
regress-713367.js [turbofan] escape analysis: patch for wrong deopt info 2017-04-25 14:20:57 +00:00
regress-714483.js [turbofan] Make sure an inlined call is not resurrected and inlined again. 2017-04-25 08:10:32 +00:00
regress-715204.js [turbofan] Fix impossible type handling for TypeGuard and BooleanNot. 2017-04-27 11:35:15 +00:00
regress-715651.js [turbofan] Fix impossible type handling for TypeGuard and BooleanNot. 2017-04-27 11:35:15 +00:00
regress-3136962.js
regress-3185901.js
regress-3218915.js
regress-3249650.js
regress-3260426.js
regress-arguments.js
regress-arrayliteral.js
regress-bit-number-constant.js
regress-closures-with-eval.js
regress-compare-negate.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
regress-const.js
regress-crbug-540593.js
regress-dead-throw-inlining.js
regress-deopt-call-as-function.js
regress-escape-analysis-indirect.js [turbofan] Fix indirect escapes in escape analysis. 2016-09-27 14:53:17 +00:00
regress-f64-w32-change.js
regress-funarguments.js
regress-funcaller.js
regress-gap.js
regress-gvn.js
regress-inline-callfunctionstub.js
regress-int32array-outofbounds-nan.js
regress-intoverflow.js
regress-lazy-deopt.js
regress-lbranch-double.js
regress-loadfield.js
regress-loop-deopt.js
regress-loop-variable-if.js [turbofan] Fix silly bug in loop variable analysis. 2016-08-08 15:50:57 +00:00
regress-loop-variable-unsigned.js [turbofan] Insert sigma nodes for loop variable backedge. 2016-08-05 14:34:05 +00:00
regress-math-sign-nan-type.js [turbofan] Fix typing rule for Math.sign. 2016-09-01 20:06:27 +00:00
regress-max.js
regress-ntl-effect.js
regress-number-is-hole-nan.js
regress-or.js
regress-register-allocator2.js
regress-register-allocator3.js
regress-register-allocator.js
regress-rep-change.js
regress-serialized-slots.js
regress-shared-deopt.js
regress-shift-left.js
regress-shift-right-logical.js
regress-shift-right.js
regress-stacktrace-methods.js
regress-stacktrace.js
regress-store-holey-double-array.js [turbofan] Prevent storing signalling NaNs into holey double arrays. 2016-06-14 08:24:43 +00:00
regress-string-to-number-add.js [mjsunit] Remove non-existing flags from tests. 2017-05-02 08:53:51 +00:00
regress-to-number-binop-deopt.js
regress-toint32.js
regress-truncate-number-or-undefined-to-float64.js [turbofan] Distinguish between change- and truncate-tagged-to-float64. 2016-05-31 12:01:40 +00:00
regress-v8-5573.js [turbofan] Relax a too-strict dcheck. 2016-10-27 12:33:19 +00:00
regress-v8-5756.js [turbofan] Optimize store to typed arrays only if the value is plain primitive. 2016-12-23 14:29:00 +00:00
regress-v8-6077.js [deoptimizer] float32 stack on s390 and ppc is on lower 32 bit 2017-04-25 16:49:33 +00:00
regress-variable-liveness-let.js
regress-variable-liveness.js
rest-parameters.js [turbofan] escape analysis supports arguments object and rest elements 2017-02-28 11:16:27 +00:00
rotate.js
safepoint.js
shift-shr.js [compiler] Speculate a little more in SpeculativeShiftRightLogical. 2017-02-24 14:39:38 +00:00
short-circuit.js
simple-bailouts.js
simple-binary-op.js
simple-deopt.js
simple-global-access.js
simple-inlining.js
smi-stores-opt.js
store-elimination.js
strict-recompile.js
string-add-try-catch.js [turbofan] Lower ConsString creation in JSTypedLowering. 2016-09-20 11:00:39 +00:00
string-length.js
switch-bailout.js
symbol-protototype.js
this-property-refs.js
thisfunction.js
to-fast-properties.js
truncating-store-deopt.js
truncating-store.js
try-binop.js
try-catch-deopt.js
try-context.js
try-deopt.js
try-finally-deopt.js
try-osr.js
turbo-number-feedback.js [mjsunit] Remove non-existing flags from tests. 2017-05-02 08:53:51 +00:00
uint8-clamped-array.js Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
uint32.js
unary-add.js
unsigned-min-max.js [turbofan] Tests for simplified lowering of unsigned min/max (it did not have code coverage). 2016-09-06 20:08:24 +00:00
variables.js