|
|
Implement loop invariant code motion for check instructions.
This CL adds a new optimization pass that hoist loop invariant
instructions upwards out of loops.
I'm adding a deoptimzation point at every Goto so that we
can move deoptimizing instructions like checks out of loops.
As a result there may be multiple deoptimization descriptors
with the same PC. The corresponding assert are removed.
Committed: https://code.google.com/p/dart/source/detail?r=11946
Total comments: 16
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+231 lines, -8 lines) |
Patch |
 |
M |
runtime/vm/code_generator.cc
|
View
|
|
1 chunk |
+1 line, -0 lines |
2 comments
|
Download
|
 |
M |
runtime/vm/compiler.cc
|
View
|
|
2 chunks |
+4 lines, -0 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/flow_graph.h
|
View
|
|
3 chunks |
+33 lines, -0 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/flow_graph.cc
|
View
|
|
3 chunks |
+58 lines, -1 line |
4 comments
|
Download
|
 |
M |
runtime/vm/flow_graph_optimizer.h
|
View
|
|
1 chunk |
+7 lines, -0 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/flow_graph_optimizer.cc
|
View
|
|
1 chunk |
+65 lines, -0 lines |
2 comments
|
Download
|
 |
M |
runtime/vm/growable_array.h
|
View
|
|
1 chunk |
+9 lines, -0 lines |
2 comments
|
Download
|
 |
M |
runtime/vm/il_printer.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
runtime/vm/intermediate_language.h
|
View
|
|
9 chunks |
+25 lines, -2 lines |
2 comments
|
Download
|
 |
M |
runtime/vm/intermediate_language.cc
|
View
|
|
3 chunks |
+26 lines, -0 lines |
2 comments
|
Download
|
 |
M |
runtime/vm/object.cc
|
View
|
|
4 chunks |
+2 lines, -4 lines |
2 comments
|
Download
|
Total messages: 5 (0 generated)
|