diff options
author | Calin Juravle <calin@google.com> | 2017-03-03 16:05:05 -0800 |
---|---|---|
committer | Calin Juravle <calin@google.com> | 2017-03-06 12:57:30 -0800 |
commit | 589e71eb71477603c88b14118b2d3a33508c3c79 (patch) | |
tree | 95d88c7c8ba3a9b2009361d61164cef6a6339308 /test/ProfileTestMultiDex/Main.java | |
parent | d9f647ac9a5cb0c6f112332d584756251c2cfb9f (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/Main.java')
-rw-r--r-- | test/ProfileTestMultiDex/Main.java | 4 |
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(); } |