|
Precompilation: Change instance call sequence to load the entry point and Code object from the ic data array instead of loading them indirectly from the Function object loaded from the same array.
Load the Code from the ic data array instead of the ObjectPool because we still need the Code object in the frame to find stackmaps / build stacktraces / build profile results.
Keep doing things the old way until all compilation is finished because evaluation of constants still needs functional lazy compilation and the compiler works with ICData that may contain as-yet-uncompiled functions. After compilation is finished, transform all the ICData from (cid, target function, count) to (cid, target code, entry point) and switch to the ICLookup stub that works with this representation.
Golem average +3.133% on ARM, +3.544% on x64
R=srdjan@google.com
Committed: https://github.com/dart-lang/sdk/commit/aefb7a424ce209cde26ecad99cd98ee86a856a71
Total comments: 23
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+315 lines, -12 lines) |
Patch |
|
M |
runtime/vm/flow_graph_compiler_arm.cc
|
View
|
1
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler_arm64.cc
|
View
|
1
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler_mips.cc
|
View
|
1
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler_x64.cc
|
View
|
1
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/object.h
|
View
|
1
2
3
4
|
3 chunks |
+15 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/object.cc
|
View
|
1
2
3
4
|
5 chunks |
+41 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/precompiler.h
|
View
|
1
2
3
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/precompiler.cc
|
View
|
1
2
3
4
|
2 chunks |
+79 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/snapshot.cc
|
View
|
1
2
3
4
|
1 chunk |
+21 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code.h
|
View
|
1
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_arm.cc
|
View
|
1
|
2 chunks |
+36 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_arm64.cc
|
View
|
1
|
2 chunks |
+36 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_ia32.cc
|
View
|
1
|
1 chunk |
+6 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_mips.cc
|
View
|
1
|
2 chunks |
+35 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_x64.cc
|
View
|
1
|
2 chunks |
+39 lines, -1 line |
0 comments
|
Download
|
Total messages: 10 (4 generated)
|