summaryrefslogtreecommitdiff
path: root/test/ProfileTestMultiDex
diff options
context:
space:
mode:
authorCalin Juravle <calin@google.com>2017-03-03 16:05:05 -0800
committerCalin Juravle <calin@google.com>2017-03-06 12:57:30 -0800
commit589e71eb71477603c88b14118b2d3a33508c3c79 (patch)
tree95d88c7c8ba3a9b2009361d61164cef6a6339308 /test/ProfileTestMultiDex
parentd9f647ac9a5cb0c6f112332d584756251c2cfb9f (diff)
Encode inline caches with missing types in the profile
Not all runtime types can be encoded in the profile. For example if the receiver type is in a dex file which is not tracked for profiling its type cannot be encoded. Previously we would just skip over these types but that can lead to encode a polymorphic inline cache when in fact it should be megamorphic. With this CL, inline caches for which types are missing are marked in the profile with a special bit, kIsMissingTypesEncoding. Also, extend profman to understand text lines which specify an inline cache with missing types. Test: test-art-host Bug: 35927981 Bug: 32434870 Change-Id: I34528a39c227f3133771fd4454701c1ddc234f40
Diffstat (limited to 'test/ProfileTestMultiDex')
-rw-r--r--test/ProfileTestMultiDex/Main.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/test/ProfileTestMultiDex/Main.java b/test/ProfileTestMultiDex/Main.java
index 73fbb00d25..a8ced544c9 100644
--- a/test/ProfileTestMultiDex/Main.java
+++ b/test/ProfileTestMultiDex/Main.java
@@ -39,6 +39,10 @@ class TestInline {
return s.getValue();
}
+ public int inlineMissingTypes(Super s) {
+ return s.getValue();
+ }
+
public int noInlineCache(Super s) {
return s.getValue();
}