From 589e71eb71477603c88b14118b2d3a33508c3c79 Mon Sep 17 00:00:00 2001 From: Calin Juravle Date: Fri, 3 Mar 2017 16:05:05 -0800 Subject: 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 --- test/ProfileTestMultiDex/Main.java | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'test/ProfileTestMultiDex/Main.java') 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(); } -- cgit v1.2.3