|
dart2js cps: Share interceptors by default and propagate to use later.
We now only introduce one getInterceptor call per primitive.
(The main use for GVN seemed to be cleaning up these calls, but we
might as well not introduce them in the first place).
To propagate single-used interceptors to their use, propagation of
constant-like expressions has changed.
There is a new CPS pass, let sinking, which sinks single-used pure
primitives to their use when the use is not inside a loop.
Conversely, the tree IR's assignment propagation has been made less
aggressive to compensate for things now handled by let sinking.
R=floitsch@google.com
Committed: https://github.com/dart-lang/sdk/commit/6e0a210da0d9593802451f4a359f2c4a3e64d3d4
Total comments: 20
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+343 lines, -36 lines) |
Patch |
|
M |
pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
|
View
|
|
2 chunks |
+5 lines, -3 lines |
0 comments
|
Download
|
|
M |
pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
|
View
|
1
2
|
1 chunk |
+7 lines, -1 line |
0 comments
|
Download
|
|
A |
pkg/compiler/lib/src/cps_ir/let_sinking.dart
|
View
|
1
2
3
|
1 chunk |
+243 lines, -0 lines |
0 comments
|
Download
|
|
M |
pkg/compiler/lib/src/cps_ir/optimizers.dart
|
View
|
1
2
3
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
pkg/compiler/lib/src/cps_ir/type_propagation.dart
|
View
|
|
2 chunks |
+19 lines, -0 lines |
0 comments
|
Download
|
|
M |
pkg/compiler/lib/src/js_backend/codegen/task.dart
|
View
|
|
3 chunks |
+5 lines, -1 line |
0 comments
|
Download
|
|
M |
pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
|
View
|
|
5 chunks |
+40 lines, -13 lines |
0 comments
|
Download
|
|
M |
pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
|
View
|
|
3 chunks |
+5 lines, -1 line |
0 comments
|
Download
|
|
M |
pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
|
View
|
|
2 chunks |
+3 lines, -2 lines |
0 comments
|
Download
|
|
M |
pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
tests/compiler/dart2js/js_backend_cps_ir_basic_test.dart
|
View
|
|
1 chunk |
+2 lines, -3 lines |
0 comments
|
Download
|
|
M |
tests/compiler/dart2js/js_backend_cps_ir_closures_test.dart
|
View
|
|
3 chunks |
+6 lines, -6 lines |
0 comments
|
Download
|
|
M |
tests/compiler/dart2js/js_backend_cps_ir_interceptors_test.dart
|
View
|
|
1 chunk |
+4 lines, -4 lines |
0 comments
|
Download
|
|
M |
tests/compiler/dart2js_extra/dart2js_extra.status
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
Total messages: 5 (1 generated)
|