|
[turbofan] Improve representation selection for Smi checking.
Rename the high-level operators CheckTaggedSigned to CheckSmi and
CheckTaggedPointer to CheckHeapObject, to better match the naming
convention (i.e. ObjectIsSmi and CheckSmi, ObjectIsString and
CheckString, etc.).
For lowering CheckSmi, always report TaggedSigned representation
and let the RepresentationChanger come up with a reasonable conversion
from whatever input representation to TaggedSigned. This way we no
longer insert the useless ChangeSomethingToTagged and then Smi check
the result sequences, i.e. mostly reduces the amount of useless code
being generated. But we also observe a few performance improvements
on some crypto benchmarks.
This would enable us to avoid the Smi canonicalization when going from
Float64 to Tagged completely and thus match the representation selection
of Crankshaft in many areas (which might reduce the amount of
polymorphism until we fix our object model).
A follow-up CL will do the same for CheckHeapObject.
BUG= v8:5267
R=jarin@chromium.org
Committed: https://crrev.com/dfbb3db5ef3401248177829eff4f36b9e0cc2324
Cr-Commit-Position: refs/heads/master@{#39654}
Total comments: 8
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+294 lines, -167 lines) |
Patch |
|
M |
src/compiler/code-generator.cc
|
View
|
1
|
1 chunk |
+12 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/compiler/effect-control-linearizer.h
|
View
|
|
3 chunks |
+14 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/compiler/effect-control-linearizer.cc
|
View
|
|
8 chunks |
+68 lines, -20 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-builtin-reducer.cc
|
View
|
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-global-object-specialization.cc
|
View
|
|
2 chunks |
+3 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-native-context-specialization.h
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/compiler/js-native-context-specialization.cc
|
View
|
|
7 chunks |
+13 lines, -13 lines |
0 comments
|
Download
|
|
M |
src/compiler/opcodes.h
|
View
|
|
2 chunks |
+6 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/compiler/redundancy-elimination.cc
|
View
|
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/compiler/representation-change.h
|
View
|
|
3 chunks |
+7 lines, -1 line |
0 comments
|
Download
|
|
M |
src/compiler/representation-change.cc
|
View
|
1
2
|
4 chunks |
+70 lines, -27 lines |
0 comments
|
Download
|
|
M |
src/compiler/simplified-lowering.cc
|
View
|
|
2 chunks |
+18 lines, -17 lines |
0 comments
|
Download
|
|
M |
src/compiler/simplified-operator.h
|
View
|
|
2 chunks |
+6 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/compiler/simplified-operator.cc
|
View
|
|
1 chunk |
+19 lines, -16 lines |
0 comments
|
Download
|
|
M |
src/compiler/simplified-operator-reducer.cc
|
View
|
|
1 chunk |
+4 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/compiler/typer.cc
|
View
|
|
2 chunks |
+14 lines, -14 lines |
0 comments
|
Download
|
|
M |
src/compiler/verifier.cc
|
View
|
|
3 chunks |
+13 lines, -10 lines |
0 comments
|
Download
|
|
M |
test/unittests/compiler/simplified-operator-reducer-unittest.cc
|
View
|
|
2 chunks |
+22 lines, -24 lines |
0 comments
|
Download
|
Total messages: 21 (14 generated)
|