summaryrefslogtreecommitdiff
path: root/test/ProfileTestMultiDex/Second.java
Commit message (Collapse)AuthorAgeFilesLines
* Add text-profile support for multiple ICsAlex Light2021-02-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Text profile inline-cache support was limited to methods with only a single invoke. This extends support so it is instead based on the receiver type and supports an arbitrary number of invokes. It does assume that all invokes of the same receivers should have the same ICs. This enables us to create text profiles that can survive most common edits to the underlying java language files. IC lines are of the following format <<CLASS_GROUP>> := {CLASS}(,{CLASS})* <<IC_GROUP>> := \[{CLASS}{CLASS_GROUP} <<IC_LINE>> := {PROFILE_FLAGS}{CLASS}->{METHOD}\+{IC_GROUP}* This means a typical line might look like: ``` HLTestInline;->inlineTriplePolymorphic(LSuper;LSecret;LSecret;)I+[LSuper;LSubA;,LSubB;,LSubC;[LSecret;LSubB;,LSubC; ``` Note that old style single-invoke IC lines are still supported as well and their format has not changed. Updated --dump-classes-and-methods to dump ICs using this format. Note that it will combine ICs for different pcs with the same target so it is possible to construct a profile where the 'profile -> dump -> profile' operation is not idempotent. Any profile coming from a text-dump will be idempotent under this transform. Test: ./test.py --host Bug: 168941430 Change-Id: I69ba3b312caa7ca454487aaeb49862e393de3a4a
* Clean up profile AddMethod APIsCalin Juravle2019-09-261-0/+155
| | | | | | | | | | | Restructure the profile assistant test to use the same APIs as profile saver and clean up all the other usages for AddMethodIndex and AddMethod. Bug: 139884006 Test: m test-art-host Change-Id: Icf76d6aa05f0f9dcc589182196ca34a0298f2cb7
* Revert^2 "Fix oatdump .data.bimg.rel.ro for intrinsics."Vladimir Marko2019-02-271-0/+8
| | | | | | | | | | | | This reverts commit 44044b1522c7486ca8b308bf49b1f39b82626e6d. Failing test was disabled for SS/GSS/Debug GC. Test: Additional test in oatdump_app_test Test: m test-art-host-gtest Bug: 71526895 Bug: 126305867 Change-Id: I2cf598ef735ca87430cdb007e7331ad444edad43
* Revert "Fix oatdump .data.bimg.rel.ro for intrinsics."Lokesh Gidra2019-02-261-8/+0
| | | | | | | | This reverts commit 9a8dcea0e97e610c5b8589e0093dbb7766a08694. Reason for revert: Causing the oatdump_app_test gtest failure over several builds. Change-Id: I5b985fc701183415529f636cf2e39ed46031ff59
* Fix oatdump .data.bimg.rel.ro for intrinsics.Vladimir Marko2019-02-221-0/+8
| | | | | | | | | | | | The Integer.valueOf() intrinsic is using entries that point to the boot image live objects array data rather than a start of an Object. So, we need to check for such entries before we look at the type of the Object. Test: Additional test in oatdump_app_test Test: m test-art-host-gtest Bug: 71526895 Change-Id: I49ab3b416aa2b4912b9fd2043805e900ad76f0f2
* Extend profman to generate profiles with inline cachesCalin Juravle2017-03-031-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extend profman logic to generate profiles based on a simple textual respresentation. This will help writing tests for profile guided compilation. Before this CL, profman was able to generate profiles based on a list of classes like: java.lang.Comparable java.lang.Math java.lang.Object This CL, enables profman to understand methods and classes alike. The new format is: # Classes Ljava/lang/Comparable; Ljava/lang/Math; # Methods with inline caches LTestInline;->inlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC; LTestInline;->noInlineCache(LSuper;)I "LTestInline;->inlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;" means that method `int inlineMonomorphicSubA(Super)` from class Main will be added to the profile with the inline cache (SubA,SubB) for its one and only invoke virtual. @Main#noInlineCache:(LSuper;)I+; meaning that method `int noInlineCache' from class Main will be added to the profile with no inline cache. Note that the methods are allowed to have a single invoke virtual in their dex bytecode. That is to keep the parsing the file format simple and easy to use. Also, add a few more tests for profiles and fix an issue caused by writing the dex files in a possibly wrong order. Test: m run-test-host-gtest-profile_assistant_test Bug: 32434870 Change-Id: I6b7340cf613007117d9818be206ccb3a27b815bf
* Improve profile processingCalin Juravle2016-01-191-0/+27
- allow file descriptors in addition to file names for profiles - fix some minor issues (wrong comparison signs, unhandled errors) - added gtests for profile_compilation_info, profile_assistant and compiler_driver Bug: 26080105 Change-Id: I136039fa1f25858399000049e48b01eafae54eb1