|
Support for multiple register values
- Adds a PairLocation type (Location is still a single word but now has two tags one for constants and one for pairs).
- New representations: kPairOfTagged & kPairOfUnboxedDouble.
- Register allocator uses second SSA index for Definitions that use two registers.
- Fix LiveRange shape for kWritableRegister inputs.
- Updated MergedMathInstr that returns a kPairOfTagged or kPairOfUnboxedDouble (depending on the merged math kind).
- A new instruction (ExtractNthOutput) for extracting a single register from an instruction that has a output register pair.
Open issues that need to be addressed in a follow up CL:
- Adjust PhiInstr and handling of PhiInstr in the register allocator to work with output pairs (once unboxed mints are in GPRs).
R=fschneider@google.com, srdjan@google.com
Committed: https://code.google.com/p/dart/source/detail?r=34833
Total comments: 6
Total comments: 6
Total comments: 18
Total comments: 14
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+909 lines, -362 lines) |
Patch |
|
M |
runtime/vm/flow_graph.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
|
1 chunk |
+8 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
|
4 chunks |
+4 lines, -4 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_allocator.h
|
View
|
1
2
3
4
5
|
1 chunk |
+16 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_allocator.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
|
26 chunks |
+343 lines, -167 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.h
|
View
|
1
2
3
4
5
6
7
8
9
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
6 chunks |
+39 lines, -26 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_type_propagator.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
1 chunk |
+7 lines, -8 lines |
0 comments
|
Download
|
|
M |
runtime/vm/il_printer.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
|
3 chunks |
+16 lines, -3 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
7 chunks |
+67 lines, -10 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
2 chunks |
+7 lines, -5 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_arm.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
4 chunks |
+58 lines, -16 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_arm64.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+11 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_ia32.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
|
4 chunks |
+72 lines, -42 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_mips.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
3 chunks |
+57 lines, -17 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_x64.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
|
5 chunks |
+71 lines, -42 lines |
0 comments
|
Download
|
|
M |
runtime/vm/locations.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
9 chunks |
+109 lines, -19 lines |
0 comments
|
Download
|
|
M |
runtime/vm/locations.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
2 chunks |
+22 lines, -2 lines |
0 comments
|
Download
|
Total messages: 13 (0 generated)
|