|
[builtins] Migrate Number predicates and make them optimizable.
Migrate the isNaN, isFinite, Number.isFinite, Number.isInteger,
Number.isSafeInteger and Number.isNaN predicates to TurboFan
builtins and make them optimizable (for certain input types) in
JavaScript callees being optimized by TurboFan. That means both
the baseline and the optimized version is now always at maximum,
consistent performance. Especially TurboFan suffered from poor
baseline (and optimized) performance because it cannot play the
same weird tricks that Crankshaft plays for %_IsSmi.
This also adds a bunch of new tests to properly cover the use
of the Harmony predicates in optimized code.
R=franzih@chromium.org
BUG= v8:5049, v8:5267
Committed: https://crrev.com/7ac19fe59823c82a8cf484d50a26767e1c828572
Cr-Commit-Position: refs/heads/master@{#39242}
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+733 lines, -80 lines) |
Patch |
|
M |
src/bootstrapper.cc
|
View
|
|
2 chunks |
+17 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/builtins/builtins.h
|
View
|
|
2 chunks |
+13 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/builtins/builtins-global.cc
|
View
|
|
2 chunks |
+109 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/builtins/builtins-number.cc
|
View
|
|
1 chunk |
+138 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-builtin-reducer.h
|
View
|
|
2 chunks |
+6 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-builtin-reducer.cc
|
View
|
|
4 chunks |
+100 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/typer.cc
|
View
|
|
2 chunks |
+8 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/js/collection.js
|
View
|
|
4 chunks |
+4 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/js/i18n.js
|
View
|
|
3 chunks |
+2 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/js/prologue.js
|
View
|
|
1 chunk |
+0 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/js/typedarray.js
|
View
|
|
3 chunks |
+3 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/js/v8natives.js
|
View
|
|
5 chunks |
+0 lines, -56 lines |
0 comments
|
Download
|
|
M |
src/objects.h
|
View
|
|
2 chunks |
+6 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/cctest/test-serialize.cc
|
View
|
|
3 chunks |
+5 lines, -5 lines |
0 comments
|
Download
|
|
A |
test/mjsunit/compiler/number-isfinite.js
|
View
|
|
1 chunk |
+29 lines, -0 lines |
0 comments
|
Download
|
|
A |
test/mjsunit/compiler/number-isinteger.js
|
View
|
|
1 chunk |
+30 lines, -0 lines |
0 comments
|
Download
|
|
A |
test/mjsunit/compiler/number-isnan.js
|
View
|
|
1 chunk |
+28 lines, -0 lines |
0 comments
|
Download
|
|
A |
test/mjsunit/compiler/number-issafeinteger.js
|
View
|
|
1 chunk |
+50 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/unittests/compiler/js-builtin-reducer-unittest.cc
|
View
|
|
3 chunks |
+185 lines, -0 lines |
0 comments
|
Download
|
Total messages: 12 (6 generated)
|