1*9880d681SAndroid Build Coastguard Worker; RUN: opt -disable-output -passes=print-lcg %s 2>&1 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; 3*9880d681SAndroid Build Coastguard Worker; Basic validation of the call graph analysis used in the new pass manager. 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine void @f() { 6*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: f 7*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Workerentry: 10*9880d681SAndroid Build Coastguard Worker ret void 11*9880d681SAndroid Build Coastguard Worker} 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker; A bunch more functions just to make it easier to test several call edges at once. 14*9880d681SAndroid Build Coastguard Workerdefine void @f1() { 15*9880d681SAndroid Build Coastguard Worker ret void 16*9880d681SAndroid Build Coastguard Worker} 17*9880d681SAndroid Build Coastguard Workerdefine void @f2() { 18*9880d681SAndroid Build Coastguard Worker ret void 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Workerdefine void @f3() { 21*9880d681SAndroid Build Coastguard Worker ret void 22*9880d681SAndroid Build Coastguard Worker} 23*9880d681SAndroid Build Coastguard Workerdefine void @f4() { 24*9880d681SAndroid Build Coastguard Worker ret void 25*9880d681SAndroid Build Coastguard Worker} 26*9880d681SAndroid Build Coastguard Workerdefine void @f5() { 27*9880d681SAndroid Build Coastguard Worker ret void 28*9880d681SAndroid Build Coastguard Worker} 29*9880d681SAndroid Build Coastguard Workerdefine void @f6() { 30*9880d681SAndroid Build Coastguard Worker ret void 31*9880d681SAndroid Build Coastguard Worker} 32*9880d681SAndroid Build Coastguard Workerdefine void @f7() { 33*9880d681SAndroid Build Coastguard Worker ret void 34*9880d681SAndroid Build Coastguard Worker} 35*9880d681SAndroid Build Coastguard Workerdefine void @f8() { 36*9880d681SAndroid Build Coastguard Worker ret void 37*9880d681SAndroid Build Coastguard Worker} 38*9880d681SAndroid Build Coastguard Workerdefine void @f9() { 39*9880d681SAndroid Build Coastguard Worker ret void 40*9880d681SAndroid Build Coastguard Worker} 41*9880d681SAndroid Build Coastguard Workerdefine void @f10() { 42*9880d681SAndroid Build Coastguard Worker ret void 43*9880d681SAndroid Build Coastguard Worker} 44*9880d681SAndroid Build Coastguard Workerdefine void @f11() { 45*9880d681SAndroid Build Coastguard Worker ret void 46*9880d681SAndroid Build Coastguard Worker} 47*9880d681SAndroid Build Coastguard Workerdefine void @f12() { 48*9880d681SAndroid Build Coastguard Worker ret void 49*9880d681SAndroid Build Coastguard Worker} 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Workerdeclare i32 @__gxx_personality_v0(...) 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Workerdefine void @test0() { 54*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: test0 55*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> f 56*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Workerentry: 59*9880d681SAndroid Build Coastguard Worker call void @f() 60*9880d681SAndroid Build Coastguard Worker call void @f() 61*9880d681SAndroid Build Coastguard Worker call void @f() 62*9880d681SAndroid Build Coastguard Worker call void @f() 63*9880d681SAndroid Build Coastguard Worker ret void 64*9880d681SAndroid Build Coastguard Worker} 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Workerdefine void ()* @test1(void ()** %x) personality i32 (...)* @__gxx_personality_v0 { 67*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: test1 68*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> f6 69*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> f10 70*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f12 71*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f11 72*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f7 73*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f9 74*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f8 75*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f5 76*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f4 77*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f3 78*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f2 79*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f1 80*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 81*9880d681SAndroid Build Coastguard Worker 82*9880d681SAndroid Build Coastguard Workerentry: 83*9880d681SAndroid Build Coastguard Worker br label %next 84*9880d681SAndroid Build Coastguard Worker 85*9880d681SAndroid Build Coastguard Workerdead: 86*9880d681SAndroid Build Coastguard Worker br label %next 87*9880d681SAndroid Build Coastguard Worker 88*9880d681SAndroid Build Coastguard Workernext: 89*9880d681SAndroid Build Coastguard Worker phi void ()* [ @f1, %entry ], [ @f2, %dead ] 90*9880d681SAndroid Build Coastguard Worker select i1 true, void ()* @f3, void ()* @f4 91*9880d681SAndroid Build Coastguard Worker store void ()* @f5, void ()** %x 92*9880d681SAndroid Build Coastguard Worker call void @f6() 93*9880d681SAndroid Build Coastguard Worker call void (void ()*, void ()*) bitcast (void ()* @f7 to void (void ()*, void ()*)*)(void ()* @f8, void ()* @f9) 94*9880d681SAndroid Build Coastguard Worker invoke void @f10() to label %exit unwind label %unwind 95*9880d681SAndroid Build Coastguard Worker 96*9880d681SAndroid Build Coastguard Workerexit: 97*9880d681SAndroid Build Coastguard Worker ret void ()* @f11 98*9880d681SAndroid Build Coastguard Worker 99*9880d681SAndroid Build Coastguard Workerunwind: 100*9880d681SAndroid Build Coastguard Worker %res = landingpad { i8*, i32 } 101*9880d681SAndroid Build Coastguard Worker cleanup 102*9880d681SAndroid Build Coastguard Worker resume { i8*, i32 } { i8* bitcast (void ()* @f12 to i8*), i32 42 } 103*9880d681SAndroid Build Coastguard Worker} 104*9880d681SAndroid Build Coastguard Worker 105*9880d681SAndroid Build Coastguard Worker@g = global void ()* @f1 106*9880d681SAndroid Build Coastguard Worker@g1 = global [4 x void ()*] [void ()* @f2, void ()* @f3, void ()* @f4, void ()* @f5] 107*9880d681SAndroid Build Coastguard Worker@g2 = global {i8, void ()*, i8} {i8 1, void ()* @f6, i8 2} 108*9880d681SAndroid Build Coastguard Worker@h = constant void ()* @f7 109*9880d681SAndroid Build Coastguard Worker 110*9880d681SAndroid Build Coastguard Workerdefine void @test2() { 111*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: test2 112*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f7 113*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f6 114*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f5 115*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f4 116*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f3 117*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f2 118*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> f1 119*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 120*9880d681SAndroid Build Coastguard Worker 121*9880d681SAndroid Build Coastguard Worker load i8*, i8** bitcast (void ()** @g to i8**) 122*9880d681SAndroid Build Coastguard Worker load i8*, i8** bitcast (void ()** getelementptr ([4 x void ()*], [4 x void ()*]* @g1, i32 0, i32 2) to i8**) 123*9880d681SAndroid Build Coastguard Worker load i8*, i8** bitcast (void ()** getelementptr ({i8, void ()*, i8}, {i8, void ()*, i8}* @g2, i32 0, i32 1) to i8**) 124*9880d681SAndroid Build Coastguard Worker load i8*, i8** bitcast (void ()** @h to i8**) 125*9880d681SAndroid Build Coastguard Worker ret void 126*9880d681SAndroid Build Coastguard Worker} 127*9880d681SAndroid Build Coastguard Worker 128*9880d681SAndroid Build Coastguard Worker@test3_ptr = external global void ()* 129*9880d681SAndroid Build Coastguard Worker 130*9880d681SAndroid Build Coastguard Workerdefine void @test3_aa1() { 131*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: test3_aa1 132*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> test3_aa2 133*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> test3_ab1 134*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 135*9880d681SAndroid Build Coastguard Worker 136*9880d681SAndroid Build Coastguard Workerentry: 137*9880d681SAndroid Build Coastguard Worker call void @test3_aa2() 138*9880d681SAndroid Build Coastguard Worker store void ()* @test3_ab1, void ()** @test3_ptr 139*9880d681SAndroid Build Coastguard Worker ret void 140*9880d681SAndroid Build Coastguard Worker} 141*9880d681SAndroid Build Coastguard Worker 142*9880d681SAndroid Build Coastguard Workerdefine void @test3_aa2() { 143*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: test3_aa2 144*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> test3_aa1 145*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> test3_ab2 146*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 147*9880d681SAndroid Build Coastguard Worker 148*9880d681SAndroid Build Coastguard Workerentry: 149*9880d681SAndroid Build Coastguard Worker call void @test3_aa1() 150*9880d681SAndroid Build Coastguard Worker call void @test3_ab2() 151*9880d681SAndroid Build Coastguard Worker ret void 152*9880d681SAndroid Build Coastguard Worker} 153*9880d681SAndroid Build Coastguard Worker 154*9880d681SAndroid Build Coastguard Workerdefine void @test3_ab1() { 155*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: test3_ab1 156*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> test3_ab2 157*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> test3_ac1 158*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 159*9880d681SAndroid Build Coastguard Worker 160*9880d681SAndroid Build Coastguard Workerentry: 161*9880d681SAndroid Build Coastguard Worker call void @test3_ab2() 162*9880d681SAndroid Build Coastguard Worker call void @test3_ac1() 163*9880d681SAndroid Build Coastguard Worker ret void 164*9880d681SAndroid Build Coastguard Worker} 165*9880d681SAndroid Build Coastguard Worker 166*9880d681SAndroid Build Coastguard Workerdefine void @test3_ab2() { 167*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: test3_ab2 168*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> test3_ab1 169*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> test3_ba1 170*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 171*9880d681SAndroid Build Coastguard Worker 172*9880d681SAndroid Build Coastguard Workerentry: 173*9880d681SAndroid Build Coastguard Worker call void @test3_ab1() 174*9880d681SAndroid Build Coastguard Worker call void @test3_ba1() 175*9880d681SAndroid Build Coastguard Worker ret void 176*9880d681SAndroid Build Coastguard Worker} 177*9880d681SAndroid Build Coastguard Worker 178*9880d681SAndroid Build Coastguard Workerdefine void @test3_ac1() { 179*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: test3_ac1 180*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> test3_ac2 181*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> test3_aa2 182*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 183*9880d681SAndroid Build Coastguard Worker 184*9880d681SAndroid Build Coastguard Workerentry: 185*9880d681SAndroid Build Coastguard Worker call void @test3_ac2() 186*9880d681SAndroid Build Coastguard Worker store void ()* @test3_aa2, void ()** @test3_ptr 187*9880d681SAndroid Build Coastguard Worker ret void 188*9880d681SAndroid Build Coastguard Worker} 189*9880d681SAndroid Build Coastguard Worker 190*9880d681SAndroid Build Coastguard Workerdefine void @test3_ac2() { 191*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: test3_ac2 192*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> test3_ac1 193*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> test3_ba1 194*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 195*9880d681SAndroid Build Coastguard Worker 196*9880d681SAndroid Build Coastguard Workerentry: 197*9880d681SAndroid Build Coastguard Worker call void @test3_ac1() 198*9880d681SAndroid Build Coastguard Worker store void ()* @test3_ba1, void ()** @test3_ptr 199*9880d681SAndroid Build Coastguard Worker ret void 200*9880d681SAndroid Build Coastguard Worker} 201*9880d681SAndroid Build Coastguard Worker 202*9880d681SAndroid Build Coastguard Workerdefine void @test3_ba1() { 203*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: test3_ba1 204*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> test3_bb1 205*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> test3_ca1 206*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 207*9880d681SAndroid Build Coastguard Worker 208*9880d681SAndroid Build Coastguard Workerentry: 209*9880d681SAndroid Build Coastguard Worker call void @test3_bb1() 210*9880d681SAndroid Build Coastguard Worker store void ()* @test3_ca1, void ()** @test3_ptr 211*9880d681SAndroid Build Coastguard Worker ret void 212*9880d681SAndroid Build Coastguard Worker} 213*9880d681SAndroid Build Coastguard Worker 214*9880d681SAndroid Build Coastguard Workerdefine void @test3_bb1() { 215*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: test3_bb1 216*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> test3_ca2 217*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ref -> test3_ba1 218*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 219*9880d681SAndroid Build Coastguard Worker 220*9880d681SAndroid Build Coastguard Workerentry: 221*9880d681SAndroid Build Coastguard Worker call void @test3_ca2() 222*9880d681SAndroid Build Coastguard Worker store void ()* @test3_ba1, void ()** @test3_ptr 223*9880d681SAndroid Build Coastguard Worker ret void 224*9880d681SAndroid Build Coastguard Worker} 225*9880d681SAndroid Build Coastguard Worker 226*9880d681SAndroid Build Coastguard Workerdefine void @test3_ca1() { 227*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: test3_ca1 228*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> test3_ca2 229*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 230*9880d681SAndroid Build Coastguard Worker 231*9880d681SAndroid Build Coastguard Workerentry: 232*9880d681SAndroid Build Coastguard Worker call void @test3_ca2() 233*9880d681SAndroid Build Coastguard Worker ret void 234*9880d681SAndroid Build Coastguard Worker} 235*9880d681SAndroid Build Coastguard Worker 236*9880d681SAndroid Build Coastguard Workerdefine void @test3_ca2() { 237*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: test3_ca2 238*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> test3_ca3 239*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 240*9880d681SAndroid Build Coastguard Worker 241*9880d681SAndroid Build Coastguard Workerentry: 242*9880d681SAndroid Build Coastguard Worker call void @test3_ca3() 243*9880d681SAndroid Build Coastguard Worker ret void 244*9880d681SAndroid Build Coastguard Worker} 245*9880d681SAndroid Build Coastguard Worker 246*9880d681SAndroid Build Coastguard Workerdefine void @test3_ca3() { 247*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Edges in function: test3_ca3 248*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call -> test3_ca1 249*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: -> 250*9880d681SAndroid Build Coastguard Worker 251*9880d681SAndroid Build Coastguard Workerentry: 252*9880d681SAndroid Build Coastguard Worker call void @test3_ca1() 253*9880d681SAndroid Build Coastguard Worker ret void 254*9880d681SAndroid Build Coastguard Worker} 255*9880d681SAndroid Build Coastguard Worker 256*9880d681SAndroid Build Coastguard Worker; Verify the SCCs formed. 257*9880d681SAndroid Build Coastguard Worker; 258*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 259*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 3 functions: 260*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: test3_ca3 261*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: test3_ca1 262*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: test3_ca2 263*9880d681SAndroid Build Coastguard Worker; 264*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 2 call SCCs: 265*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 266*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: test3_bb1 267*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 268*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: test3_ba1 269*9880d681SAndroid Build Coastguard Worker; 270*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 3 call SCCs: 271*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 2 functions: 272*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: test3_ac2 273*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: test3_ac1 274*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 2 functions: 275*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: test3_ab2 276*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: test3_ab1 277*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 2 functions: 278*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: test3_aa2 279*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: test3_aa1 280*9880d681SAndroid Build Coastguard Worker; 281*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 282*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 283*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f7 284*9880d681SAndroid Build Coastguard Worker; 285*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 286*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 287*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f6 288*9880d681SAndroid Build Coastguard Worker; 289*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 290*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 291*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f5 292*9880d681SAndroid Build Coastguard Worker; 293*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 294*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 295*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f4 296*9880d681SAndroid Build Coastguard Worker; 297*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 298*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 299*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f3 300*9880d681SAndroid Build Coastguard Worker; 301*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 302*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 303*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f2 304*9880d681SAndroid Build Coastguard Worker; 305*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 306*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 307*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f1 308*9880d681SAndroid Build Coastguard Worker; 309*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 310*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 311*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: test2 312*9880d681SAndroid Build Coastguard Worker; 313*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 314*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 315*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f10 316*9880d681SAndroid Build Coastguard Worker; 317*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 318*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 319*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f12 320*9880d681SAndroid Build Coastguard Worker; 321*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 322*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 323*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f11 324*9880d681SAndroid Build Coastguard Worker; 325*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 326*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 327*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f9 328*9880d681SAndroid Build Coastguard Worker; 329*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 330*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 331*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f8 332*9880d681SAndroid Build Coastguard Worker; 333*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 334*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 335*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: test1 336*9880d681SAndroid Build Coastguard Worker; 337*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 338*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 339*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: f 340*9880d681SAndroid Build Coastguard Worker; 341*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: RefSCC with 1 call SCCs: 342*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: SCC with 1 functions: 343*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: test0 344