|
[turbofan] Osr value typing + dynamic type checks on entry.
This introduces a new OsrGuard node that is inserted during graph building
to guard the inferred type of the OSR value.
The type of the OSR value is inferred by running the typer before OSR
deconstruction, and then taking the type from the phi that takes the
OSR value. After the deconstruction, we throw the types away.
At the moment we only support the SignedSmall OSR type and we always
pick the tagged representation. Later, we might want to support more
types (such as Number) and pick better representations (int32/float64).
This CL also removes the OSR deconstruction tests because they build
unrealistic graph (no effect chain, no loop termination). I considered
adding the effect chains to the tests, but this would make the tests
even more brittle.
Committed: https://crrev.com/1f5dc90a900d222da44bee3eff171a2ba1e3c076
Cr-Commit-Position: refs/heads/master@{#39971}
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+351 lines, -602 lines) |
Patch |
|
M |
src/compiler/ast-graph-builder.cc
|
View
|
1
2
3
4
|
2 chunks |
+33 lines, -11 lines |
0 comments
|
Download
|
|
M |
src/compiler/bytecode-graph-builder.cc
|
View
|
|
1 chunk |
+18 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/common-operator.h
|
View
|
|
2 chunks |
+8 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/common-operator.cc
|
View
|
|
3 chunks |
+32 lines, -1 line |
0 comments
|
Download
|
|
M |
src/compiler/instruction-selector.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/compiler/js-frame-specialization.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/compiler/node-properties.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/compiler/opcodes.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/osr.cc
|
View
|
|
4 chunks |
+48 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/compiler/pipeline.cc
|
View
|
|
4 chunks |
+29 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/compiler/simplified-lowering.cc
|
View
|
1
2
|
4 chunks |
+30 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/compiler/typer.cc
|
View
|
|
1 chunk |
+13 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/verifier.cc
|
View
|
|
1 chunk |
+17 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/cctest/BUILD.gn
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
test/cctest/cctest.gyp
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
D |
test/cctest/compiler/test-osr.cc
|
View
|
|
1 chunk |
+0 lines, -575 lines |
0 comments
|
Download
|
|
A |
test/mjsunit/compiler/osr-typing-debug-change.js
|
View
|
1
2
3
|
1 chunk |
+119 lines, -0 lines |
0 comments
|
Download
|
Total messages: 23 (17 generated)
|