|
|
dart2js cps: Use a strictness flag on Branch instead of rewriting.
The unsugar pass no longer inserts `identical(_, true)` around every
branching condition. Insead, the Branch node has a flag isStrictCheck
denoting whether that check should be there.
The `identical(_, true)` check is now inserted by the Tree IR builder.
The identical nodes obstructed reasoning about branching conditions, in
particular in redundant joint elimination and insertion of type
refinement nodes.
BUG=
R=kmillikin@google.com
Committed: https://github.com/dart-lang/sdk/commit/a1ddf508358f370f8b8e195e2809a72827195112
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+122 lines, -160 lines) |
Patch |
 |
M |
pkg/compiler/lib/src/cps_ir/cps_fragment.dart
|
View
|
|
3 chunks |
+7 lines, -7 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
|
View
|
|
11 chunks |
+33 lines, -33 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
|
View
|
|
5 chunks |
+24 lines, -29 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart
|
View
|
|
2 chunks |
+3 lines, -7 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
|
View
|
|
3 chunks |
+3 lines, -10 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/redundant_join.dart
|
View
|
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart
|
View
|
|
1 chunk |
+0 lines, -4 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/type_propagation.dart
|
View
|
|
10 chunks |
+36 lines, -20 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
|
View
|
|
3 chunks |
+1 line, -40 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
|
View
|
|
4 chunks |
+14 lines, -8 lines |
0 comments
|
Download
|
Total messages: 4 (1 generated)
|