|
Enable optimizer pipeline for DBC.
Most of the infrastructure is fixed to work with DBC stack layout:
- register allocator allocates DBC registers with the limitation that we allocate only 20 registers and bail out if anything needs spilling (there is no use implementing spilling on DBC because registers are memory locations themselves). We should be able to bump number of CPU registers on DBC up to 256 but this requires major surgery in some parts - so I postponed this;
- lazy deoptimization is implemented, eager deoptimization is not - because we don't emit any code that actually requires it. it's a minor change to support it once we have a target;
- stack scanning respects stack maps built by registers allocator;
We bailout from all unsupported instructions.
R=zra@google.com
Committed: https://github.com/dart-lang/sdk/commit/655bc90489a6fa33b39d6a15972e9294d5c9d85a
Total comments: 56
Total comments: 14
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+1157 lines, -281 lines) |
Patch |
|
M |
runtime/tests/vm/vm.status
|
View
|
1
2
3
4
5
|
1 chunk |
+26 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/code_generator.cc
|
View
|
1
2
3
4
|
5 chunks |
+18 lines, -11 lines |
0 comments
|
Download
|
|
M |
runtime/vm/code_patcher_dbc.cc
|
View
|
1
2
3
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/constants_dbc.h
|
View
|
1
2
3
|
14 chunks |
+94 lines, -25 lines |
0 comments
|
Download
|
|
M |
runtime/vm/deopt_instructions.h
|
View
|
1
2
3
4
|
7 chunks |
+47 lines, -5 lines |
0 comments
|
Download
|
|
M |
runtime/vm/deopt_instructions.cc
|
View
|
1
2
|
5 chunks |
+34 lines, -15 lines |
0 comments
|
Download
|
|
M |
runtime/vm/disassembler_dbc.cc
|
View
|
|
1 chunk |
+5 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_allocator.h
|
View
|
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_allocator.cc
|
View
|
1
2
|
14 chunks |
+86 lines, -6 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_builder.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+1 line, -9 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler.h
|
View
|
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+1 line, -9 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler_dbc.cc
|
View
|
1
2
3
4
|
6 chunks |
+189 lines, -12 lines |
0 comments
|
Download
|
|
M |
runtime/vm/instructions_dbc.cc
|
View
|
|
2 chunks |
+6 lines, -3 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.h
|
View
|
1
2
3
4
5
|
1 chunk |
+11 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.cc
|
View
|
1
2
3
|
5 chunks |
+27 lines, -6 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_dbc.cc
|
View
|
1
2
3
|
20 chunks |
+270 lines, -82 lines |
0 comments
|
Download
|
|
M |
runtime/vm/parser.h
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/parser.cc
|
View
|
|
1 chunk |
+13 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/simulator_dbc.h
|
View
|
|
1 chunk |
+0 lines, -9 lines |
0 comments
|
Download
|
|
M |
runtime/vm/simulator_dbc.cc
|
View
|
1
2
3
|
24 chunks |
+265 lines, -83 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stack_frame.cc
|
View
|
1
2
3
|
3 chunks |
+38 lines, -3 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code.h
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_dbc.cc
|
View
|
|
1 chunk |
+13 lines, -0 lines |
0 comments
|
Download
|
Total messages: 14 (4 generated)
|