v8/test/unittests/interpreter
Benedikt Meurer 5ee1b7ad5a [turbofan] Add IC support for Call/ConstructWithSpread.
Properly hook up the (existing) IC slots for the CallWithSpread and
ConstructWithSpread bytecodes, and change the interpreter to collect
feedback (call counts and regular target function feedback) for those.
There's no integration with the Array constructor yet, since that
requires some yak shaving to thread through the AllocationSite to the
Array constructor stub. Once we have a solution for that, we can also
remove the current code duplication in the Call/Construct IC logic.

Also properly hook up the newly available feedback in TurboFan. This
will fix not only the missing target feedback, but more importantly
the tear-up decisions for optimization are correct now in the presence
of spread calls, and even more importantly the inlining heurstic has
proper call frequencies for those.

Some follow-up changes will be necessary to make sure we use the
feedback even for corner cases that aren't handled properly yet. Also
we should consider collecting feedback about the map of the spread
at some point to be able to always inline the spread calls.

Bug: v8:6399, v8:6527, v8:6630
Change-Id: I818dbcb411fd3951d8e9d31f5d7e794f8d60fa00
Reviewed-on: https://chromium-review.googlesource.com/582647
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46832}
2017-07-24 07:11:50 +00:00
..
bytecode-array-builder-unittest.cc [turbofan] Add IC support for Call/ConstructWithSpread. 2017-07-24 07:11:50 +00:00
bytecode-array-iterator-unittest.cc [ignition] Remove handles from bytecode generation 2017-02-10 17:52:39 +00:00
bytecode-array-random-iterator-unittest.cc [ignition] Remove handles from bytecode generation 2017-02-10 17:52:39 +00:00
bytecode-array-writer-unittest.cc Revert "[ignition] Merge bytecode array builder and writer" 2017-06-27 09:10:18 +00:00
bytecode-decoder-unittest.cc Reland: [ignition] Add call bytecodes for undefined receiver 2017-04-11 15:52:37 +00:00
bytecode-node-unittest.cc Revert "[ignition] Merge bytecode array builder and writer" 2017-06-27 09:10:18 +00:00
bytecode-operands-unittest.cc [Interpreter] Templatize AccumulatorUsage and OperandType for bytecode creation. 2016-12-15 07:56:21 +00:00
bytecode-register-allocator-unittest.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
bytecode-register-optimizer-unittest.cc [Interpreter] Remove BytecodePipeline. 2017-04-12 15:18:50 +00:00
bytecode-source-info-unittest.cc [Interpreter] Remove BytecodePipeline. 2017-04-12 15:18:50 +00:00
bytecode-utils.h [interpreter] Introduce bytecode generation pipeline. 2016-05-12 19:20:04 +00:00
bytecodes-unittest.cc [ignition] Optimize jump checks to range checks 2016-12-05 18:26:26 +00:00
constant-array-builder-unittest.cc [ignition] Remove handles from bytecode generation 2017-02-10 17:52:39 +00:00
interpreter-assembler-unittest.cc [cleanup] Remove always-off support for tail calls 2017-07-13 19:29:05 +00:00
interpreter-assembler-unittest.h [turbofan] Remove virtual methods from CodeAssembler. 2016-12-28 15:47:34 +00:00