v8/test/unittests/compiler
mtrofin 1ecf58f409 [turbofan] fine grained in-block move optimization
So far, we've been moving down gaps wholesale. This change moves
individual move operations instead. This improves some benchmarks,
and should overall reduce code size, because it improves the chance of
reducing the number of moves.

For example, there are improvements on x64 in Emscripten (Bullet, in
particular) , JetStream geomean, Embenchen (zlib).

In the process of making this change, I noticed we can separate the
tasks performed by the move optimizer, as follows:

- group gaps into 1
- push gaps down, jumping instructions (these 2 were together before)
- merge blocks (and then push gaps down)
- finalize

We can do without a finalization list. This avoids duplicating storage -
we already have the list of instructions; it also simplifies the logic, since,
with this change, we may process an instruction's gap twice.

Compile time doesn't regress much (see pathological cases), but we
may want to avoid the allocations of the few sets used in the new code.
I'll do that in a subsequent change.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#33715}
2016-02-04 06:30:34 +00:00
..
arm [turbofan] Store nodes use only MachineRepresentation, not MachineType. 2015-12-11 15:34:16 +00:00
arm64 [turbofan] Store nodes use only MachineRepresentation, not MachineType. 2015-12-11 15:34:16 +00:00
ia32 [turbofan] Store nodes use only MachineRepresentation, not MachineType. 2015-12-11 15:34:16 +00:00
mips MIPS: [turbofan] Optimize Float32 to Int32 rep. changes with Float32 round ops. 2015-12-18 16:12:51 +00:00
mips64 MIPS: [turbofan] Optimize Float32 to Int32 rep. changes with Float32 round ops. 2015-12-18 16:12:51 +00:00
ppc Update PPC OWNERS 2015-07-27 21:37:55 +00:00
x64 [turbofan] Store nodes use only MachineRepresentation, not MachineType. 2015-12-11 15:34:16 +00:00
branch-elimination-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
change-lowering-unittest.cc [turbofan] Store nodes use only MachineRepresentation, not MachineType. 2015-12-11 15:34:16 +00:00
coalesced-live-ranges-unittest.cc [turbofan] Factored out the test live range builder. 2015-08-31 09:57:48 +00:00
common-operator-reducer-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
common-operator-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
compiler-test-utils.h [turbofan] Drop V8_TURBOFAN_BACKEND and V8_TURBOFAN_TARGET defines. 2015-08-10 07:17:34 +00:00
control-equivalence-unittest.cc [tubofan] Remove .dot output of --trace-turbo 2015-12-11 16:58:31 +00:00
control-flow-optimizer-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
dead-code-elimination-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
diamond-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
escape-analysis-unittest.cc Remove the template magic from types.(h|cc), remove types-inl.h. 2016-02-02 07:26:06 +00:00
graph-reducer-unittest.cc [turbofan] Make Node::set_op safer via wrapper. 2015-09-24 14:46:37 +00:00
graph-reducer-unittest.h [turbofan] Add AdvancedReducer::ReplaceWithValue() method and convert JSInlining to an AdvancedReducer. 2015-05-12 12:41:36 +00:00
graph-trimmer-unittest.cc [turbofan] Proper dead code elimination as regular reducer. 2015-06-19 12:07:26 +00:00
graph-unittest.cc [turbofan] Get rid of type lower bounds. 2015-09-16 11:55:43 +00:00
graph-unittest.h [turbofan] Remove usage of Unique<T> from graph. 2015-08-31 08:25:05 +00:00
instruction-selector-unittest.cc [turbofan] Add the StackSlot operator to turbofan. 2016-01-29 09:43:54 +00:00
instruction-selector-unittest.h [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
instruction-sequence-unittest.cc Re-reland: Remove register index/code indirection 2015-10-02 16:55:22 +00:00
instruction-sequence-unittest.h [turbofan] Create ExplicitOperands to specify operands without virtual registers 2015-10-27 13:27:00 +00:00
interpreter-assembler-unittest.cc Revert of Type Feedback Vector lives in the closure (patchset #2 id:20001 of https://codereview.chromium.org/1642613002/ ) 2016-01-27 15:05:38 +00:00
interpreter-assembler-unittest.h [Interpreter] Bytecodes for exchanging registers. 2016-01-04 17:38:26 +00:00
js-builtin-reducer-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
js-context-relaxation-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
js-intrinsic-lowering-unittest.cc [turbofan] Introduce proper ObjectIsReceiver operator. 2016-02-02 11:43:02 +00:00
js-operator-unittest.cc [turbofan] The JSCreateWithContext operator doesn't need a frame state. 2015-12-09 12:00:26 +00:00
js-type-feedback-unittest.cc Remove support for "loads and stores to global vars through property cell shortcuts installed into parent script context" from all compilers. 2015-10-22 09:17:24 +00:00
js-typed-lowering-unittest.cc [turbofan] Move creation stub fallbacks to JSGenericLowering. 2016-02-02 13:34:02 +00:00
linkage-tail-call-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
live-range-builder.h [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
live-range-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
liveness-analyzer-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
load-elimination-unittest.cc [turbofan] Turn LoadElimination into an AdvancedReducer. 2015-06-05 16:40:58 +00:00
loop-peeling-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
machine-operator-reducer-unittest.cc [turbofan] Store nodes use only MachineRepresentation, not MachineType. 2015-12-11 15:34:16 +00:00
machine-operator-unittest.cc [turbofan] Store nodes use only MachineRepresentation, not MachineType. 2015-12-11 15:34:16 +00:00
move-optimizer-unittest.cc [turbofan] fine grained in-block move optimization 2016-02-04 06:30:34 +00:00
node-cache-unittest.cc [test] Turn compiler/test-node-cache into a unit test. 2015-04-29 14:40:05 +00:00
node-matchers-unittest.cc [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
node-properties-unittest.cc [turbofan] Proper dead code elimination as regular reducer. 2015-06-19 12:07:26 +00:00
node-test-utils.cc [turbofan] Introduce proper ObjectIsReceiver operator. 2016-02-02 11:43:02 +00:00
node-test-utils.h [turbofan] Introduce proper ObjectIsReceiver operator. 2016-02-02 11:43:02 +00:00
node-unittest.cc Fix -Wsign-compare errors in TF tests under GCC 4.9.2 2015-06-15 12:03:45 +00:00
opcodes-unittest.cc [turbofan] Strength reduction for inline comparisons. 2015-02-24 12:26:29 +00:00
register-allocator-unittest.cc Re-reland: Remove register index/code indirection 2015-10-02 16:55:22 +00:00
schedule-unittest.cc Model exceptional edges from call nodes in TurboFan. 2015-02-20 09:55:00 +00:00
scheduler-unittest.cc [tubofan] Remove .dot output of --trace-turbo 2015-12-11 16:58:31 +00:00
select-lowering-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
simplified-operator-reducer-unittest.cc [turbofan] Move SimplifiedOperatorBuilder into JSGraph. 2015-10-16 12:38:52 +00:00
simplified-operator-unittest.cc [turbofan] Introduce proper ObjectIsReceiver operator. 2016-02-02 11:43:02 +00:00
state-values-utils-unittest.cc [turbofan] Move SimplifiedOperatorBuilder into JSGraph. 2015-10-16 12:38:52 +00:00
tail-call-optimization-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
typer-unittest.cc Remove the template magic from types.(h|cc), remove types-inl.h. 2016-02-02 07:26:06 +00:00
value-numbering-reducer-unittest.cc [turbofan] Check node input/use consistency for changed operators and new nodes. 2015-09-25 08:43:11 +00:00
zone-pool-unittest.cc Fix invalid use of int in Zone. 2015-02-12 12:47:18 +00:00