xref: /aosp_15_r20/art/test/ProfileTestMultiDex/Main.java (revision 795d594fd825385562da6b089ea9b2033f3abf5a)
1*795d594fSAndroid Build Coastguard Worker /*
2*795d594fSAndroid Build Coastguard Worker  * Copyright (C) 2016 The Android Open Source Project
3*795d594fSAndroid Build Coastguard Worker  *
4*795d594fSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*795d594fSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*795d594fSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*795d594fSAndroid Build Coastguard Worker  *
8*795d594fSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*795d594fSAndroid Build Coastguard Worker  *
10*795d594fSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*795d594fSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*795d594fSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*795d594fSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*795d594fSAndroid Build Coastguard Worker  * limitations under the License.
15*795d594fSAndroid Build Coastguard Worker  */
16*795d594fSAndroid Build Coastguard Worker 
17*795d594fSAndroid Build Coastguard Worker class Main {
getA()18*795d594fSAndroid Build Coastguard Worker   public String getA() {
19*795d594fSAndroid Build Coastguard Worker     return "A";
20*795d594fSAndroid Build Coastguard Worker   }
getB()21*795d594fSAndroid Build Coastguard Worker   public String getB() {
22*795d594fSAndroid Build Coastguard Worker     return "B";
23*795d594fSAndroid Build Coastguard Worker   }
getC()24*795d594fSAndroid Build Coastguard Worker   public String getC() {
25*795d594fSAndroid Build Coastguard Worker     return "C";
26*795d594fSAndroid Build Coastguard Worker   }
27*795d594fSAndroid Build Coastguard Worker }
28*795d594fSAndroid Build Coastguard Worker 
29*795d594fSAndroid Build Coastguard Worker class TestInline {
inlineMonomorphic(Super s)30*795d594fSAndroid Build Coastguard Worker   public int inlineMonomorphic(Super s) {
31*795d594fSAndroid Build Coastguard Worker     return s.getValue();
32*795d594fSAndroid Build Coastguard Worker   }
33*795d594fSAndroid Build Coastguard Worker 
inlinePolymorphic(Super s)34*795d594fSAndroid Build Coastguard Worker   public int inlinePolymorphic(Super s) {
35*795d594fSAndroid Build Coastguard Worker     return s.getValue();
36*795d594fSAndroid Build Coastguard Worker   }
37*795d594fSAndroid Build Coastguard Worker 
inlineMegamorphic(Super s)38*795d594fSAndroid Build Coastguard Worker   public int inlineMegamorphic(Super s) {
39*795d594fSAndroid Build Coastguard Worker     return s.getValue();
40*795d594fSAndroid Build Coastguard Worker   }
41*795d594fSAndroid Build Coastguard Worker 
inlineMissingTypes(Super s)42*795d594fSAndroid Build Coastguard Worker   public int inlineMissingTypes(Super s) {
43*795d594fSAndroid Build Coastguard Worker     return s.getValue();
44*795d594fSAndroid Build Coastguard Worker   }
45*795d594fSAndroid Build Coastguard Worker 
noInlineCache(Super s)46*795d594fSAndroid Build Coastguard Worker   public int noInlineCache(Super s) {
47*795d594fSAndroid Build Coastguard Worker     return s.getValue();
48*795d594fSAndroid Build Coastguard Worker   }
49*795d594fSAndroid Build Coastguard Worker 
inlineMultiMonomorphic(Super s, Secret sec)50*795d594fSAndroid Build Coastguard Worker   public int inlineMultiMonomorphic(Super s, Secret sec) {
51*795d594fSAndroid Build Coastguard Worker     return s.getValue() + sec.getIdentity();
52*795d594fSAndroid Build Coastguard Worker   }
53*795d594fSAndroid Build Coastguard Worker 
inlineMultiPolymorphic(Super s, Secret sec)54*795d594fSAndroid Build Coastguard Worker   public int inlineMultiPolymorphic(Super s, Secret sec) {
55*795d594fSAndroid Build Coastguard Worker     return s.getValue() + sec.getIdentity();
56*795d594fSAndroid Build Coastguard Worker   }
57*795d594fSAndroid Build Coastguard Worker 
inlineTriplePolymorphic(Super s, Secret sec, Secret thr)58*795d594fSAndroid Build Coastguard Worker   public int inlineTriplePolymorphic(Super s, Secret sec, Secret thr) {
59*795d594fSAndroid Build Coastguard Worker     return s.getValue() + sec.getIdentity() + thr.getIdentity();
60*795d594fSAndroid Build Coastguard Worker   }
61*795d594fSAndroid Build Coastguard Worker 
inlineMultiMegamorphic(Super s, Secret sec)62*795d594fSAndroid Build Coastguard Worker   public int inlineMultiMegamorphic(Super s, Secret sec) {
63*795d594fSAndroid Build Coastguard Worker     return s.getValue() + sec.getIdentity();
64*795d594fSAndroid Build Coastguard Worker   }
65*795d594fSAndroid Build Coastguard Worker 
inlineMultiMissingTypes(Super s, Secret sec)66*795d594fSAndroid Build Coastguard Worker   public int inlineMultiMissingTypes(Super s, Secret sec) {
67*795d594fSAndroid Build Coastguard Worker     return s.getValue() + sec.getIdentity();
68*795d594fSAndroid Build Coastguard Worker   }
69*795d594fSAndroid Build Coastguard Worker 
noInlineCacheMulti(Super s, Secret sec)70*795d594fSAndroid Build Coastguard Worker   public int noInlineCacheMulti(Super s, Secret sec) {
71*795d594fSAndroid Build Coastguard Worker     return s.getValue() + sec.getIdentity();
72*795d594fSAndroid Build Coastguard Worker   }
73*795d594fSAndroid Build Coastguard Worker }
74*795d594fSAndroid Build Coastguard Worker 
75*795d594fSAndroid Build Coastguard Worker class TestInlineSubtype extends TestInline {
foobar()76*795d594fSAndroid Build Coastguard Worker   public void foobar() {
77*795d594fSAndroid Build Coastguard Worker     this.inlineMonomorphic(new SubA());
78*795d594fSAndroid Build Coastguard Worker   }
79*795d594fSAndroid Build Coastguard Worker }
80*795d594fSAndroid Build Coastguard Worker 
81*795d594fSAndroid Build Coastguard Worker abstract class Secret {
getIdentity()82*795d594fSAndroid Build Coastguard Worker   abstract int getIdentity();
83*795d594fSAndroid Build Coastguard Worker }
84*795d594fSAndroid Build Coastguard Worker 
85*795d594fSAndroid Build Coastguard Worker abstract class Super extends Secret {
getValue()86*795d594fSAndroid Build Coastguard Worker   abstract int getValue();
87*795d594fSAndroid Build Coastguard Worker }
88*795d594fSAndroid Build Coastguard Worker 
89*795d594fSAndroid Build Coastguard Worker class SubA extends Super {
getValue()90*795d594fSAndroid Build Coastguard Worker   int getValue() { return 42; }
getIdentity()91*795d594fSAndroid Build Coastguard Worker   int getIdentity() { return 24; }
92*795d594fSAndroid Build Coastguard Worker }
93*795d594fSAndroid Build Coastguard Worker 
94*795d594fSAndroid Build Coastguard Worker class SubB extends Super {
getValue()95*795d594fSAndroid Build Coastguard Worker   int getValue() { return 38; };
getIdentity()96*795d594fSAndroid Build Coastguard Worker   int getIdentity() { return 83; }
97*795d594fSAndroid Build Coastguard Worker }
98*795d594fSAndroid Build Coastguard Worker 
99*795d594fSAndroid Build Coastguard Worker class SubD extends Super {
getValue()100*795d594fSAndroid Build Coastguard Worker   int getValue() { return 20; };
getIdentity()101*795d594fSAndroid Build Coastguard Worker   int getIdentity() { return 2; };
102*795d594fSAndroid Build Coastguard Worker }
103*795d594fSAndroid Build Coastguard Worker 
104*795d594fSAndroid Build Coastguard Worker class SubE extends Super {
getValue()105*795d594fSAndroid Build Coastguard Worker   int getValue() { return 16; };
getIdentity()106*795d594fSAndroid Build Coastguard Worker   int getIdentity() { return 61; };
107*795d594fSAndroid Build Coastguard Worker }
108*795d594fSAndroid Build Coastguard Worker 
109*795d594fSAndroid Build Coastguard Worker // Add a class with lots of methods so we can test profile guided compilation triggers.
110*795d594fSAndroid Build Coastguard Worker class ZLotsOfMethods {
m1()111*795d594fSAndroid Build Coastguard Worker   public void m1() {}
m2()112*795d594fSAndroid Build Coastguard Worker   public void m2() {}
m3()113*795d594fSAndroid Build Coastguard Worker   public void m3() {}
m4()114*795d594fSAndroid Build Coastguard Worker   public void m4() {}
m5()115*795d594fSAndroid Build Coastguard Worker   public void m5() {}
m6()116*795d594fSAndroid Build Coastguard Worker   public void m6() {}
m7()117*795d594fSAndroid Build Coastguard Worker   public void m7() {}
m8()118*795d594fSAndroid Build Coastguard Worker   public void m8() {}
m9()119*795d594fSAndroid Build Coastguard Worker   public void m9() {}
m10()120*795d594fSAndroid Build Coastguard Worker   public void m10() {}
m11()121*795d594fSAndroid Build Coastguard Worker   public void m11() {}
m12()122*795d594fSAndroid Build Coastguard Worker   public void m12() {}
m13()123*795d594fSAndroid Build Coastguard Worker   public void m13() {}
m14()124*795d594fSAndroid Build Coastguard Worker   public void m14() {}
m15()125*795d594fSAndroid Build Coastguard Worker   public void m15() {}
m16()126*795d594fSAndroid Build Coastguard Worker   public void m16() {}
m17()127*795d594fSAndroid Build Coastguard Worker   public void m17() {}
m18()128*795d594fSAndroid Build Coastguard Worker   public void m18() {}
m19()129*795d594fSAndroid Build Coastguard Worker   public void m19() {}
m20()130*795d594fSAndroid Build Coastguard Worker   public void m20() {}
m21()131*795d594fSAndroid Build Coastguard Worker   public void m21() {}
m22()132*795d594fSAndroid Build Coastguard Worker   public void m22() {}
m23()133*795d594fSAndroid Build Coastguard Worker   public void m23() {}
m24()134*795d594fSAndroid Build Coastguard Worker   public void m24() {}
m25()135*795d594fSAndroid Build Coastguard Worker   public void m25() {}
m26()136*795d594fSAndroid Build Coastguard Worker   public void m26() {}
m27()137*795d594fSAndroid Build Coastguard Worker   public void m27() {}
m28()138*795d594fSAndroid Build Coastguard Worker   public void m28() {}
m29()139*795d594fSAndroid Build Coastguard Worker   public void m29() {}
m30()140*795d594fSAndroid Build Coastguard Worker   public void m30() {}
m31()141*795d594fSAndroid Build Coastguard Worker   public void m31() {}
m32()142*795d594fSAndroid Build Coastguard Worker   public void m32() {}
m33()143*795d594fSAndroid Build Coastguard Worker   public void m33() {}
m34()144*795d594fSAndroid Build Coastguard Worker   public void m34() {}
m35()145*795d594fSAndroid Build Coastguard Worker   public void m35() {}
m36()146*795d594fSAndroid Build Coastguard Worker   public void m36() {}
m37()147*795d594fSAndroid Build Coastguard Worker   public void m37() {}
m38()148*795d594fSAndroid Build Coastguard Worker   public void m38() {}
m39()149*795d594fSAndroid Build Coastguard Worker   public void m39() {}
m40()150*795d594fSAndroid Build Coastguard Worker   public void m40() {}
m41()151*795d594fSAndroid Build Coastguard Worker   public void m41() {}
m42()152*795d594fSAndroid Build Coastguard Worker   public void m42() {}
m43()153*795d594fSAndroid Build Coastguard Worker   public void m43() {}
m44()154*795d594fSAndroid Build Coastguard Worker   public void m44() {}
m45()155*795d594fSAndroid Build Coastguard Worker   public void m45() {}
m46()156*795d594fSAndroid Build Coastguard Worker   public void m46() {}
m47()157*795d594fSAndroid Build Coastguard Worker   public void m47() {}
m48()158*795d594fSAndroid Build Coastguard Worker   public void m48() {}
m49()159*795d594fSAndroid Build Coastguard Worker   public void m49() {}
m50()160*795d594fSAndroid Build Coastguard Worker   public void m50() {}
m51()161*795d594fSAndroid Build Coastguard Worker   public void m51() {}
m52()162*795d594fSAndroid Build Coastguard Worker   public void m52() {}
m53()163*795d594fSAndroid Build Coastguard Worker   public void m53() {}
m54()164*795d594fSAndroid Build Coastguard Worker   public void m54() {}
m55()165*795d594fSAndroid Build Coastguard Worker   public void m55() {}
m56()166*795d594fSAndroid Build Coastguard Worker   public void m56() {}
m57()167*795d594fSAndroid Build Coastguard Worker   public void m57() {}
m58()168*795d594fSAndroid Build Coastguard Worker   public void m58() {}
m59()169*795d594fSAndroid Build Coastguard Worker   public void m59() {}
m60()170*795d594fSAndroid Build Coastguard Worker   public void m60() {}
m61()171*795d594fSAndroid Build Coastguard Worker   public void m61() {}
m62()172*795d594fSAndroid Build Coastguard Worker   public void m62() {}
m63()173*795d594fSAndroid Build Coastguard Worker   public void m63() {}
m64()174*795d594fSAndroid Build Coastguard Worker   public void m64() {}
m65()175*795d594fSAndroid Build Coastguard Worker   public void m65() {}
m66()176*795d594fSAndroid Build Coastguard Worker   public void m66() {}
m67()177*795d594fSAndroid Build Coastguard Worker   public void m67() {}
m68()178*795d594fSAndroid Build Coastguard Worker   public void m68() {}
m69()179*795d594fSAndroid Build Coastguard Worker   public void m69() {}
m70()180*795d594fSAndroid Build Coastguard Worker   public void m70() {}
m71()181*795d594fSAndroid Build Coastguard Worker   public void m71() {}
m72()182*795d594fSAndroid Build Coastguard Worker   public void m72() {}
m73()183*795d594fSAndroid Build Coastguard Worker   public void m73() {}
m74()184*795d594fSAndroid Build Coastguard Worker   public void m74() {}
m75()185*795d594fSAndroid Build Coastguard Worker   public void m75() {}
m76()186*795d594fSAndroid Build Coastguard Worker   public void m76() {}
m77()187*795d594fSAndroid Build Coastguard Worker   public void m77() {}
m78()188*795d594fSAndroid Build Coastguard Worker   public void m78() {}
m79()189*795d594fSAndroid Build Coastguard Worker   public void m79() {}
m80()190*795d594fSAndroid Build Coastguard Worker   public void m80() {}
m81()191*795d594fSAndroid Build Coastguard Worker   public void m81() {}
m82()192*795d594fSAndroid Build Coastguard Worker   public void m82() {}
m83()193*795d594fSAndroid Build Coastguard Worker   public void m83() {}
m84()194*795d594fSAndroid Build Coastguard Worker   public void m84() {}
m85()195*795d594fSAndroid Build Coastguard Worker   public void m85() {}
m86()196*795d594fSAndroid Build Coastguard Worker   public void m86() {}
m87()197*795d594fSAndroid Build Coastguard Worker   public void m87() {}
m88()198*795d594fSAndroid Build Coastguard Worker   public void m88() {}
m89()199*795d594fSAndroid Build Coastguard Worker   public void m89() {}
m90()200*795d594fSAndroid Build Coastguard Worker   public void m90() {}
m91()201*795d594fSAndroid Build Coastguard Worker   public void m91() {}
m92()202*795d594fSAndroid Build Coastguard Worker   public void m92() {}
m93()203*795d594fSAndroid Build Coastguard Worker   public void m93() {}
m94()204*795d594fSAndroid Build Coastguard Worker   public void m94() {}
m95()205*795d594fSAndroid Build Coastguard Worker   public void m95() {}
m96()206*795d594fSAndroid Build Coastguard Worker   public void m96() {}
m97()207*795d594fSAndroid Build Coastguard Worker   public void m97() {}
m98()208*795d594fSAndroid Build Coastguard Worker   public void m98() {}
m99()209*795d594fSAndroid Build Coastguard Worker   public void m99() {}
m100()210*795d594fSAndroid Build Coastguard Worker   public void m100() {}
m101()211*795d594fSAndroid Build Coastguard Worker   public void m101() {}
m102()212*795d594fSAndroid Build Coastguard Worker   public void m102() {}
m103()213*795d594fSAndroid Build Coastguard Worker   public void m103() {}
m104()214*795d594fSAndroid Build Coastguard Worker   public void m104() {}
m105()215*795d594fSAndroid Build Coastguard Worker   public void m105() {}
m106()216*795d594fSAndroid Build Coastguard Worker   public void m106() {}
m107()217*795d594fSAndroid Build Coastguard Worker   public void m107() {}
m108()218*795d594fSAndroid Build Coastguard Worker   public void m108() {}
m109()219*795d594fSAndroid Build Coastguard Worker   public void m109() {}
m110()220*795d594fSAndroid Build Coastguard Worker   public void m110() {}
m111()221*795d594fSAndroid Build Coastguard Worker   public void m111() {}
m112()222*795d594fSAndroid Build Coastguard Worker   public void m112() {}
m113()223*795d594fSAndroid Build Coastguard Worker   public void m113() {}
m114()224*795d594fSAndroid Build Coastguard Worker   public void m114() {}
m115()225*795d594fSAndroid Build Coastguard Worker   public void m115() {}
m116()226*795d594fSAndroid Build Coastguard Worker   public void m116() {}
m117()227*795d594fSAndroid Build Coastguard Worker   public void m117() {}
m118()228*795d594fSAndroid Build Coastguard Worker   public void m118() {}
m119()229*795d594fSAndroid Build Coastguard Worker   public void m119() {}
m120()230*795d594fSAndroid Build Coastguard Worker   public void m120() {}
m121()231*795d594fSAndroid Build Coastguard Worker   public void m121() {}
m122()232*795d594fSAndroid Build Coastguard Worker   public void m122() {}
m123()233*795d594fSAndroid Build Coastguard Worker   public void m123() {}
m124()234*795d594fSAndroid Build Coastguard Worker   public void m124() {}
m125()235*795d594fSAndroid Build Coastguard Worker   public void m125() {}
m126()236*795d594fSAndroid Build Coastguard Worker   public void m126() {}
m127()237*795d594fSAndroid Build Coastguard Worker   public void m127() {}
m128()238*795d594fSAndroid Build Coastguard Worker   public void m128() {}
m129()239*795d594fSAndroid Build Coastguard Worker   public void m129() {}
m130()240*795d594fSAndroid Build Coastguard Worker   public void m130() {}
m131()241*795d594fSAndroid Build Coastguard Worker   public void m131() {}
m132()242*795d594fSAndroid Build Coastguard Worker   public void m132() {}
m133()243*795d594fSAndroid Build Coastguard Worker   public void m133() {}
m134()244*795d594fSAndroid Build Coastguard Worker   public void m134() {}
m135()245*795d594fSAndroid Build Coastguard Worker   public void m135() {}
m136()246*795d594fSAndroid Build Coastguard Worker   public void m136() {}
m137()247*795d594fSAndroid Build Coastguard Worker   public void m137() {}
m138()248*795d594fSAndroid Build Coastguard Worker   public void m138() {}
m139()249*795d594fSAndroid Build Coastguard Worker   public void m139() {}
m140()250*795d594fSAndroid Build Coastguard Worker   public void m140() {}
m141()251*795d594fSAndroid Build Coastguard Worker   public void m141() {}
m142()252*795d594fSAndroid Build Coastguard Worker   public void m142() {}
m143()253*795d594fSAndroid Build Coastguard Worker   public void m143() {}
m144()254*795d594fSAndroid Build Coastguard Worker   public void m144() {}
m145()255*795d594fSAndroid Build Coastguard Worker   public void m145() {}
m146()256*795d594fSAndroid Build Coastguard Worker   public void m146() {}
m147()257*795d594fSAndroid Build Coastguard Worker   public void m147() {}
m148()258*795d594fSAndroid Build Coastguard Worker   public void m148() {}
m149()259*795d594fSAndroid Build Coastguard Worker   public void m149() {}
m150()260*795d594fSAndroid Build Coastguard Worker   public void m150() {}
261*795d594fSAndroid Build Coastguard Worker }
262