v8/test/unittests/compiler
Sigurd Schneider c875a64377 [turbofan] Reduce consecutive machine additions with constants
This adds optimizations that apply the reductions
  (x + Int32Constant(a)) + Int32Constant(b)) => x + Int32Constant(a + b)
  (x + Int64Constant(a)) + Int64Constant(b)) => x + Int64Constant(a + b)
to the TurboFan graph.

This helps reducing awkward sequences like
  leaq r12,[r9*8+0x8]
  movq r12,[rbx+r12*1-0x1]
to
  movq r12,[rax+r9*8+0x7]


Change-Id: Iaa3a1cb9136a3f905ba33c62e16c3cb3c117605c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627544
Auto-Submit: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61817}
2019-05-24 08:45:59 +00:00
..
arm Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
arm64 Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
backend Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
ia32 Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
mips Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
mips64 Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
ppc Move code generation related files to src/codegen 2019-05-21 10:33:39 +00:00
regalloc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
s390 Move code generation related files to src/codegen 2019-05-21 10:33:39 +00:00
x64 Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
branch-elimination-unittest.cc
bytecode-analysis-unittest.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
checkpoint-elimination-unittest.cc [cleanup] Refactor compiler to use default members. 2018-09-17 12:12:21 +00:00
code-assembler-unittest.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
code-assembler-unittest.h [cleanup] Refactor compiler to use default members. 2018-09-17 12:12:21 +00:00
common-operator-reducer-unittest.cc Move code generation related files to src/codegen 2019-05-21 10:33:39 +00:00
common-operator-unittest.cc test: Replace _TEST_CASE_ with _TEST_SUITE_. 2019-02-18 21:36:56 +00:00
compiler-test-utils.h
constant-folding-reducer-unittest.cc Move relevant files to src/execution 2019-05-22 08:36:33 +00:00
control-equivalence-unittest.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
control-flow-optimizer-unittest.cc [cleanup] Refactor compiler to use default members. 2018-09-17 12:12:21 +00:00
dead-code-elimination-unittest.cc [cleanup] Refactor compiler to use default members. 2018-09-17 12:12:21 +00:00
decompression-elimination-unittest.cc [ptr-compr][Turbofan] Adding the TypedStateValues decompress reduction 2019-05-22 12:25:52 +00:00
diamond-unittest.cc
effect-control-linearizer-unittest.cc [turbofan] Simplify effect-control-linearizer.h 2019-05-10 14:12:47 +00:00
graph-reducer-unittest.cc [cleanup] Replace 0 and NULL with nullptr for compiler files. 2018-09-14 16:20:29 +00:00
graph-reducer-unittest.h
graph-trimmer-unittest.cc
graph-unittest.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
graph-unittest.h Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
int64-lowering-unittest.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
js-call-reducer-unittest.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
js-create-lowering-unittest.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
js-intrinsic-lowering-unittest.cc [cleanup] Remove unused IsTypedArray runtime function 2019-05-21 07:25:39 +00:00
js-native-context-specialization-unittest.cc Move number related files to src/numbers 2019-05-15 19:34:44 +00:00
js-operator-unittest.cc test: Replace _TEST_CASE_ with _TEST_SUITE_. 2019-02-18 21:36:56 +00:00
js-typed-lowering-unittest.cc Move relevant files to src/execution 2019-05-22 08:36:33 +00:00
linkage-tail-call-unittest.cc
load-elimination-unittest.cc Retire PretenureFlag and use AllocationType everywhere. 2019-03-12 08:10:44 +00:00
loop-peeling-unittest.cc [cleanup] Refactor compiler to use default members. 2018-09-17 12:12:21 +00:00
machine-operator-reducer-unittest.cc [turbofan] Reduce consecutive machine additions with constants 2019-05-24 08:45:59 +00:00
machine-operator-unittest.cc test: Replace _TEST_CASE_ with _TEST_SUITE_. 2019-02-18 21:36:56 +00:00
node-cache-unittest.cc [cleanup] Replace 0 and NULL with nullptr for compiler files. 2018-09-14 16:20:29 +00:00
node-matchers-unittest.cc [cleanup] Refactor compiler to use default members. 2018-09-17 12:12:21 +00:00
node-properties-unittest.cc
node-test-utils.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
node-test-utils.h Move code generation related files to src/codegen 2019-05-21 10:33:39 +00:00
node-unittest.cc
opcodes-unittest.cc [ubsan][compiler] Avoid out-of-range casts to IrOpcode::Value 2019-01-25 20:55:25 +00:00
persistent-unittest.cc [ubsan] Fix numerical overflows in the compiler 2019-01-10 11:17:37 +00:00
redundancy-elimination-unittest.cc Revert recent ConsString-related changes 2019-04-18 12:24:53 +00:00
schedule-unittest.cc
scheduler-rpo-unittest.cc [cleanup] Refactor compiler to use default members. 2018-09-17 12:12:21 +00:00
scheduler-unittest.cc
simplified-lowering-unittest.cc [turbofan] Rename "js_heap_broker" to "broker". 2018-10-15 08:17:17 +00:00
simplified-operator-reducer-unittest.cc Move number related files to src/numbers 2019-05-15 19:34:44 +00:00
simplified-operator-unittest.cc test: Replace _TEST_CASE_ with _TEST_SUITE_. 2019-02-18 21:36:56 +00:00
state-values-utils-unittest.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
typed-optimization-unittest.cc Move relevant files to src/execution 2019-05-22 08:36:33 +00:00
typer-unittest.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
value-numbering-reducer-unittest.cc
zone-stats-unittest.cc [cleanup] Don't use virtual inheritance in gtest fixtures 2018-10-30 06:28:42 +00:00