|
AOT: When a call goes polymorphic but has a single target, transition to a stub that does a cid range check.
Expand the range on a miss if all classes in the range have the same lookup result, otherwise transition to the stub that does a linear scan of ICData.
Because we do a depth-first sort of classes during AOT, if a call site sees only objects all inheriting the same function as the call target, the call site will be handled by this new stub.
Adjust LoadClassIdMayBeSmi on x64 to preserve the object.
R=fschneider@google.com
Committed: https://github.com/dart-lang/sdk/commit/ba94427eb13dff41b5eb5850219034aaf0016535
Total comments: 12
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+446 lines, -3 lines) |
Patch |
|
M |
runtime/vm/assembler_x64.cc
|
View
|
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/code_generator.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
2 chunks |
+146 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/dart.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
3 chunks |
+3 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/object.h
|
View
|
1
2
3
4
5
6
7
8
9
|
3 chunks |
+38 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/object.cc
|
View
|
1
|
5 chunks |
+36 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/object_service.cc
|
View
|
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/raw_object.h
|
View
|
1
2
3
4
5
6
7
8
9
|
2 chunks |
+16 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/raw_object.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+7 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/raw_object_snapshot.cc
|
View
|
|
1 chunk |
+18 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/runtime_entry_list.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_arm.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
1 chunk |
+42 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_arm64.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
1 chunk |
+44 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_ia32.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_mips.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
1 chunk |
+41 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_x64.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
1 chunk |
+39 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/symbols.h
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
Total messages: 14 (7 generated)
|