|
[turbofan] Introduce a dedicated CheckMaps simplified operator.
So far we always create explicit control flow for map checks during
JSNativeContextSpecialization, or in the monomorphic case we used a
CheckIf combined with a map comparison. In either case we cannot
currently effectively utilize the map check information during load
elimination to optimize (polymorphic) map checks and elements kind
transitions.
With the introduction of CheckMaps, we can now start optimizing map
checks in a more effective fashion. This CL doesn't change anything
in that direction yet, but merely changes the fundamental mechanism.
This also removes the stable map optimization from the Typer, where
it was always a bit odd, and puts it into the typed lowering and
the native context specialization instead.
R=epertoso@chromium.org
BUG= v8:4930, v8:5141
Committed: https://crrev.com/8201579e031aee4118e7a98ac0991418d01fd06a
Cr-Commit-Position: refs/heads/master@{#38166}
Total comments: 2
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+452 lines, -219 lines) |
Patch |
|
M |
src/compiler/effect-control-linearizer.h
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/effect-control-linearizer.cc
|
View
|
|
2 chunks |
+40 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-native-context-specialization.h
|
View
|
|
1 chunk |
+7 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-native-context-specialization.cc
|
View
|
|
7 chunks |
+234 lines, -141 lines |
2 comments
|
Download
|
|
M |
src/compiler/js-typed-lowering.h
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-typed-lowering.cc
|
View
|
|
4 chunks |
+83 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/load-elimination.h
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/load-elimination.cc
|
View
|
|
2 chunks |
+50 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/opcodes.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/pipeline.cc
|
View
|
|
1 chunk |
+1 line, -4 lines |
0 comments
|
Download
|
|
M |
src/compiler/simplified-lowering.cc
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/simplified-operator.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/simplified-operator.cc
|
View
|
|
1 chunk |
+12 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/typer.h
|
View
|
|
5 chunks |
+1 line, -17 lines |
0 comments
|
Download
|
|
M |
src/compiler/typer.cc
|
View
|
|
5 chunks |
+7 lines, -57 lines |
0 comments
|
Download
|
|
M |
src/compiler/verifier.cc
|
View
|
|
1 chunk |
+8 lines, -0 lines |
0 comments
|
Download
|
Depends on Patchset:
Dependent Patchsets:
Total messages: 12 (6 generated)
|