|
VM: Reland Inline instance object hash code into object header on 64bit.
Inline instance object hash code into object header on 64 bit.
64 bit objects have 32 bits of free space in the header word.
This is used for the hash code in string objects. We take it
for the default hash code on all objects that don't override
the hashCode getter.
This is both faster and a memory reduction. Eg it makes the
MegaHashCode part of the Megamorphic benchmark 6 times faster.
This is a reland of https://codereview.chromium.org/2912863006/
It fixes issues with the 32 bit compare-swap instruction on
ARM64 and fixes a fragile tree shaking test that is sensitive
to which private methods are in the core libraries.
R=kustermann@google.com, vegorov@google.com
BUG=
Committed: https://github.com/dart-lang/sdk/commit/8378b8fdbf332c9bf2166abb960354bb92492480
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+501 lines, -151 lines) |
Patch |
|
M |
pkg/front_end/testcases/shaker/empty_program.dart.shaker
|
View
|
1
|
1 chunk |
+0 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/lib/object.cc
|
View
|
|
1 chunk |
+9 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/lib/object_patch.dart
|
View
|
|
2 chunks |
+7 lines, -8 lines |
0 comments
|
Download
|
|
M |
runtime/vm/assembler_arm.cc
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/assembler_arm64.h
|
View
|
|
2 chunks |
+9 lines, -6 lines |
0 comments
|
Download
|
|
M |
runtime/vm/assembler_arm64.cc
|
View
|
|
2 chunks |
+6 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/assembler_arm64_test.cc
|
View
|
1
2
|
2 chunks |
+64 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/assembler_ia32.cc
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/assembler_mips.cc
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/assembler_x64.h
|
View
|
|
2 chunks |
+5 lines, -8 lines |
0 comments
|
Download
|
|
M |
runtime/vm/assembler_x64.cc
|
View
|
|
2 chunks |
+6 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/assembler_x64_test.cc
|
View
|
|
3 chunks |
+43 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/become.h
|
View
|
|
1 chunk |
+4 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/become.cc
|
View
|
|
2 chunks |
+5 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/clustered_snapshot.cc
|
View
|
|
1 chunk |
+4 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/freelist.h
|
View
|
|
1 chunk |
+4 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/freelist.cc
|
View
|
|
1 chunk |
+6 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/heap.h
|
View
|
|
3 chunks |
+10 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/heap.cc
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_dbc.cc
|
View
|
|
3 chunks |
+3 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/intrinsifier_arm64.cc
|
View
|
|
1 chunk |
+17 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intrinsifier_x64.cc
|
View
|
|
1 chunk |
+17 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/method_recognizer.h
|
View
|
|
2 chunks |
+14 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/object.h
|
View
|
|
3 chunks |
+8 lines, -12 lines |
0 comments
|
Download
|
|
M |
runtime/vm/object.cc
|
View
|
1
2
3
|
12 chunks |
+92 lines, -24 lines |
0 comments
|
Download
|
|
M |
runtime/vm/profiler.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/raw_object.h
|
View
|
|
17 chunks |
+56 lines, -31 lines |
0 comments
|
Download
|
|
M |
runtime/vm/raw_object.cc
|
View
|
|
6 chunks |
+7 lines, -7 lines |
0 comments
|
Download
|
|
M |
runtime/vm/simulator_arm64.h
|
View
|
|
1 chunk |
+3 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/simulator_arm64.cc
|
View
|
|
3 chunks |
+39 lines, -9 lines |
0 comments
|
Download
|
|
M |
runtime/vm/simulator_dbc.cc
|
View
|
|
5 chunks |
+7 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/snapshot.h
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/snapshot.cc
|
View
|
|
7 chunks |
+26 lines, -4 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_arm.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_arm64.cc
|
View
|
|
3 chunks |
+7 lines, -4 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_ia32.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_mips.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_x64.cc
|
View
|
|
2 chunks |
+9 lines, -6 lines |
0 comments
|
Download
|
Total messages: 7 (2 generated)
|