|
[turbofan] First step towards sanitizing for-in and making it optimizable.
In a nutshell: The FILTER_KEY builtin is gone, and was replaced by a
simple runtime call to ForInFilter, which does everything and is even
cheaper (because FILTER_KEY used to call into the runtime anyway).
And ForInFilter returns either the name or undefined, which makes it
possible to remove the control flow construction from the AstGraphBuilder,
and thereby make both the initialization and the per-loop code of for-in
optimizable later (in typed lowering).
R=jarin@chromium.org
Committed: https://crrev.com/e2e47f30be06e6ea6b8a3cc90138381914ecd07d
Cr-Commit-Position: refs/heads/master@{#28711}
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+478 lines, -275 lines) |
Patch |
|
M |
BUILD.gn
|
View
|
1
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/arm/full-codegen-arm.cc
|
View
|
|
1 chunk |
+4 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/arm64/full-codegen-arm64.cc
|
View
|
|
1 chunk |
+3 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/builtins.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
src/compiler/ast-graph-builder.h
|
View
|
1
|
2 chunks |
+3 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/compiler/ast-graph-builder.cc
|
View
|
1
|
2 chunks |
+72 lines, -133 lines |
0 comments
|
Download
|
|
M |
src/compiler/control-builders.h
|
View
|
1
|
1 chunk |
+3 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/control-builders.cc
|
View
|
1
|
1 chunk |
+10 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-generic-lowering.cc
|
View
|
1
2
|
1 chunk |
+202 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-operator.h
|
View
|
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-operator.cc
|
View
|
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/linkage.cc
|
View
|
|
1 chunk |
+2 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/compiler/opcodes.h
|
View
|
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/operator-properties.cc
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/typer.cc
|
View
|
|
1 chunk |
+24 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/verifier.cc
|
View
|
1
|
1 chunk |
+19 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/hydrogen.cc
|
View
|
|
1 chunk |
+8 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/ia32/full-codegen-ia32.cc
|
View
|
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/mips/full-codegen-mips.cc
|
View
|
1
|
1 chunk |
+3 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/mips64/full-codegen-mips64.cc
|
View
|
1
|
1 chunk |
+3 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/runtime.js
|
View
|
|
2 chunks |
+0 lines, -11 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime.h
|
View
|
1
|
4 chunks |
+33 lines, -28 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime-array.cc
|
View
|
1
|
1 chunk |
+0 lines, -81 lines |
0 comments
|
Download
|
|
A |
src/runtime/runtime-forin.cc
|
View
|
1
|
1 chunk |
+67 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime-utils.h
|
View
|
1
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/x64/full-codegen-x64.cc
|
View
|
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
tools/gyp/v8.gyp
|
View
|
1
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
Total messages: 12 (3 generated)
|