|
Refactor branch instructions to enable further optimizations.
This CL simplifies the code generation for branches: Each BranchInstr
wraps a comparison computation and we can reuse the code between the two
in many cases. Similar to BindInstr, most accessors forward to the wrapped
computation. One exception is the location summary, which is modified for
branches: The result location is removed since branches don't produce a result.
This way, it is easier to replace a comparison branch
with a specialized version and eliminate redundante checks before branches.
Committed: https://code.google.com/p/dart/source/detail?r=11500
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+231 lines, -456 lines) |
Patch |
|
M |
runtime/vm/flow_graph_builder.cc
|
View
|
|
3 chunks |
+14 lines, -17 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.cc
|
View
|
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/il_printer.cc
|
View
|
|
2 chunks |
+3 lines, -34 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.h
|
View
|
|
7 chunks |
+40 lines, -105 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.cc
|
View
|
|
1 chunk |
+11 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_ia32.cc
|
View
|
|
6 chunks |
+78 lines, -150 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_x64.cc
|
View
|
|
6 chunks |
+78 lines, -149 lines |
0 comments
|
Download
|
|
M |
runtime/vm/locations.h
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
Total messages: 2 (0 generated)
|