v8/test
Pierre Langlois 7ac10da795 [turbofan] Lower NumberConstant nodes to IntPtrConstant.
If a NumberConstant can be represented as a Smi, then lower it to a
IntPtrConstant node during simplified lowering. Thanks to this, all backends can
match Smi values that can also be encoded as immediates in the instruction
selector. Additionally, we can apply the same lowering to the CodeAssembler for
the snapshot.

As a result, we can remove `mov` instructions generated because Int32Matcher and
Int64Matcher didn't not recognize Smis:

For 32-bit target, it's common for Smis also be immediates: "if (a < 100) {}"
~~~
mov r1, #200 -> cmp r0, #200
cmp r0, r1   -> blt <>
blt <>       ->
~~~

On Arm64 particularly, we lose opportunites to use `cbz`: "if (a == 0) {}"
~~~
movz x0, #0x0 -> cbz x1 <>
cmp x1, x0    ->
b.eq <>       ->
~~~

Overall, we do not see an impact on benchmarks such as webtooling. However, we
do see noteworthy code size reduction, from 0.5% to 1.5%.

Bug: 
Change-Id: I7fbb718ad51b9036c3514fa31c1326bdd6f2b0e6
Reviewed-on: https://chromium-review.googlesource.com/848814
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
Cr-Commit-Position: refs/heads/master@{#50569}
2018-01-15 10:46:01 +00:00
..
benchmarks [test] Implement variant generators as processors 2018-01-12 10:39:20 +00:00
cctest Remove always-true --harmony-async-iteration runtime flag 2018-01-12 20:14:34 +00:00
common [wasm] Move (almost all) constants to wasm-constants.h 2018-01-11 12:25:54 +00:00
debugger [test] Store expected outcomes in the testcase. 2017-12-18 14:51:20 +00:00
fuzzer [turbofan] Add fuzzer to test different signatures for multi-returns 2018-01-12 12:20:27 +00:00
inspector Remove always-true --harmony-async-iteration runtime flag 2018-01-12 20:14:34 +00:00
intl [test] Store expected outcomes in the testcase. 2017-12-18 14:51:20 +00:00
js-perf-test Create js-perf-test for Array.of 2018-01-12 16:28:35 +00:00
memory [snapshot] add tracking for builtin snapshot size. 2017-08-31 07:29:31 +00:00
message [wasm] Refactor memory tracing 2018-01-15 10:13:00 +00:00
mjsunit [test] Replace obsolete FAST_VARIANTS modifier 2018-01-15 08:52:45 +00:00
mkgrokdump [test] Check output on the worker process. 2018-01-04 14:12:31 +00:00
mozilla [test] Replace obsolete FAST_VARIANTS modifier 2018-01-15 08:52:45 +00:00
preparser [test] Implement variant generators as processors 2018-01-12 10:39:20 +00:00
test262 Remove always-true --harmony-async-iteration runtime flag 2018-01-12 20:14:34 +00:00
unittests [turbofan] Lower NumberConstant nodes to IntPtrConstant. 2018-01-15 10:46:01 +00:00
wasm-spec-tests [wasm] Update spec tests. 2018-01-09 15:58:51 +00:00
webkit Make date-constructor test more portable 2018-01-11 18:44:33 +00:00
bot_default.gyp [test] Add a d8_default test suite collection 2018-01-12 15:18:04 +00:00
bot_default.isolate [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
BUILD.gn [test] Add a d8_default test suite collection 2018-01-12 15:18:04 +00:00
d8_default.gyp [test] Add a d8_default test suite collection 2018-01-12 15:18:04 +00:00
d8_default.isolate [test] Add a d8_default test suite collection 2018-01-12 15:18:04 +00:00
default.gyp [test] Add a d8_default test suite collection 2018-01-12 15:18:04 +00:00
default.isolate [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
optimize_for_size.gyp [test] Add a d8_default test suite collection 2018-01-12 15:18:04 +00:00
optimize_for_size.isolate [debugger] basic test infrastructure for new debugger test api. 2016-10-21 06:38:05 +00:00
perf.gyp [gn] Move build to gypfiles 2016-04-29 10:11:11 +00:00
perf.isolate Reland "Reland "[test] Creating command before execution phase."" 2017-12-04 13:40:29 +00:00