|
|
cps-ir: Merge variables based on set-based liveness and graph coloring.
RegisterAllocator and CopyPropagator have been removed.
Variables are merged after StatementRewriter.
This simplifies CPS->Tree translation is a little bit since the mapping
to variables is one-to-one.
The StatementRewriter has a more SSA-like input, but has to be more
aggressive when looking for a redex. It now looks through a chain of
phi-assignments to check if two statements can be combined, whereas
before it would only combine two identical jumps.
I haven't been able to measure a significant slowdown, though I'm sure
it is at least a little bit slower.
R=kmillikin@google.com
Committed: https://code.google.com/p/dart/source/detail?r=44962
Total comments: 70
Total comments: 1
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+717 lines, -619 lines) |
Patch |
 |
M |
pkg/analyzer2dart/test/end2end_data.dart
|
View
|
|
3 chunks |
+17 lines, -5 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
|
View
|
1
2
3
4
5
6
|
3 chunks |
+4 lines, -282 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/dart_backend/backend.dart
|
View
|
|
2 chunks |
+1 line, -6 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart
|
View
|
1
2
3
4
5
6
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/dart_backend/dart_backend.dart
|
View
|
1
2
3
4
5
6
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/js_backend/codegen/task.dart
|
View
|
|
2 chunks |
+1 line, -5 lines |
0 comments
|
Download
|
 |
D |
pkg/compiler/lib/src/tree_ir/optimization/copy_propagator.dart
|
View
|
|
1 chunk |
+0 lines, -266 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/tree_ir/optimization/loop_rewriter.dart
|
View
|
1
|
1 chunk |
+0 lines, -7 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/tree_ir/optimization/optimization.dart
|
View
|
|
2 chunks |
+5 lines, -2 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
|
View
|
1
2
3
4
5
6
|
3 chunks |
+27 lines, -10 lines |
0 comments
|
Download
|
 |
A |
pkg/compiler/lib/src/tree_ir/optimization/variable_merger.dart
|
View
|
1
2
3
4
5
|
1 chunk |
+614 lines, -0 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
|
View
|
1
2
3
4
5
6
|
7 chunks |
+15 lines, -30 lines |
0 comments
|
Download
|
 |
M |
tests/compiler/dart2js/js_backend_cps_ir_interceptors_test.dart
|
View
|
|
2 chunks |
+3 lines, -3 lines |
0 comments
|
Download
|
 |
A |
tests/language/catch_liveness_test.dart
|
View
|
1
2
|
1 chunk |
+27 lines, -0 lines |
0 comments
|
Download
|
Total messages: 9 (1 generated)
|