|
|
VM: Improve receiver class check in polymorphic inlining.
Avoid reloading the class-id at the entry to last inlined variant at
inlined polymorphic call sites. For this I added a new check instruction
CheckClassIdInstr to deoptimize on integer-comparison.
In polymorphic CheckClass with small dense ranges of class-ids now generate
max. 2 branch instructions by doing a range check and computing a test mask
instead of a sequence of compare and branch instructions.
R=johnmccutchan@google.com
Committed: https://code.google.com/p/dart/source/detail?r=38116
Total comments: 2
Total comments: 2
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+482 lines, -90 lines) |
Patch |
 |
M |
runtime/vm/assembler_arm.h
|
View
|
1
2
3
4
5
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/assembler_ia32.h
|
View
|
1
2
3
4
5
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/assembler_ia32.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+8 lines, -0 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/assembler_ia32_test.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+20 lines, -0 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/assembler_x64.h
|
View
|
1
2
3
4
5
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/assembler_x64.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+9 lines, -0 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/assembler_x64_test.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+20 lines, -0 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/disassembler_ia32.cc
|
View
|
1
2
3
4
5
|
3 chunks |
+8 lines, -4 lines |
2 comments
|
Download
|
 |
M |
runtime/vm/flow_graph_inliner.cc
|
View
|
1
2
3
4
5
|
2 chunks |
+15 lines, -33 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/flow_graph_optimizer.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/flow_graph_type_propagator.h
|
View
|
1
2
3
4
5
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/flow_graph_type_propagator.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+10 lines, -0 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/intermediate_language.h
|
View
|
1
2
3
4
5
|
5 chunks |
+39 lines, -0 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/intermediate_language.cc
|
View
|
1
2
3
4
5
|
3 chunks |
+40 lines, -1 line |
0 comments
|
Download
|
 |
M |
runtime/vm/intermediate_language_arm.cc
|
View
|
1
2
3
4
5
|
3 chunks |
+59 lines, -9 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/intermediate_language_arm64.cc
|
View
|
1
2
3
4
5
|
2 chunks |
+60 lines, -9 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/intermediate_language_ia32.cc
|
View
|
1
2
3
4
5
|
3 chunks |
+61 lines, -12 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/intermediate_language_mips.cc
|
View
|
1
2
3
4
5
|
3 chunks |
+62 lines, -10 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/intermediate_language_x64.cc
|
View
|
1
2
3
4
5
|
3 chunks |
+62 lines, -12 lines |
0 comments
|
Download
|
Total messages: 11 (0 generated)
|