1*ca0abaebSMatthias Braun; RUN: llc -o - %s | FileCheck %s 2*ca0abaebSMatthias Braun; Make sure RegAllocGreedy/SplitKit do not produce invalid liveness information 3*ca0abaebSMatthias Braun; and crash when splitting a liverange twice and rematerializing each time. 4*ca0abaebSMatthias Braun; (Sorry for the testcase; this was ran through bugpoint and then manually 5*ca0abaebSMatthias Braun; reduced for several hours but is still big...) 6*ca0abaebSMatthias Brauntarget triple = "thumbv7-apple-ios" 7*ca0abaebSMatthias Braun 8*ca0abaebSMatthias Braun%struct.ham = type { %struct.wombat.0 } 9*ca0abaebSMatthias Braun%struct.wombat.0 = type { %struct.barney } 10*ca0abaebSMatthias Braun%struct.barney = type { %struct.snork.1 } 11*ca0abaebSMatthias Braun%struct.snork.1 = type { %struct.wobble.2 } 12*ca0abaebSMatthias Braun%struct.wobble.2 = type { %struct.blam } 13*ca0abaebSMatthias Braun%struct.blam = type { i32, i32, i8* } 14*ca0abaebSMatthias Braun%struct.ham.3 = type { %struct.pluto } 15*ca0abaebSMatthias Braun%struct.pluto = type { %struct.zot*, %struct.snork.5, %struct.wibble } 16*ca0abaebSMatthias Braun%struct.zot = type { %struct.blam.4* } 17*ca0abaebSMatthias Braun%struct.blam.4 = type <{ %struct.zot, %struct.blam.4*, %struct.zot*, i8, [3 x i8] }> 18*ca0abaebSMatthias Braun%struct.snork.5 = type { %struct.quux } 19*ca0abaebSMatthias Braun%struct.quux = type { %struct.zot } 20*ca0abaebSMatthias Braun%struct.wibble = type { %struct.widget } 21*ca0abaebSMatthias Braun%struct.widget = type { i32 } 22*ca0abaebSMatthias Braun%struct.bar = type { %struct.spam } 23*ca0abaebSMatthias Braun%struct.spam = type { %struct.zot*, %struct.wobble, %struct.zot.7 } 24*ca0abaebSMatthias Braun%struct.wobble = type { %struct.wibble.6 } 25*ca0abaebSMatthias Braun%struct.wibble.6 = type { %struct.zot } 26*ca0abaebSMatthias Braun%struct.zot.7 = type { %struct.ham.8 } 27*ca0abaebSMatthias Braun%struct.ham.8 = type { i32 } 28*ca0abaebSMatthias Braun%struct.hoge = type { %struct.ham, %struct.foo } 29*ca0abaebSMatthias Braun%struct.foo = type { float, float } 30*ca0abaebSMatthias Braun%struct.wombat = type { %struct.ham, float } 31*ca0abaebSMatthias Braun%struct.snork = type { %struct.ham.9, [11 x i8] } 32*ca0abaebSMatthias Braun%struct.ham.9 = type { i8 } 33*ca0abaebSMatthias Braun 34*ca0abaebSMatthias Braun@global = external global i8 35*ca0abaebSMatthias Braun@global.1 = private constant [20 x i8] c"aaaaaaaaaaaaaaaaaa0\00" 36*ca0abaebSMatthias Braun@global.2 = external constant [27 x i8] 37*ca0abaebSMatthias Braun@global.3 = external global %struct.ham 38*ca0abaebSMatthias Braun@global.4 = external constant [47 x i8] 39*ca0abaebSMatthias Braun@global.5 = external constant [61 x i8] 40*ca0abaebSMatthias Braun@global.6 = external constant [40 x i8] 41*ca0abaebSMatthias Braun@global.7 = external constant [24 x i8] 42*ca0abaebSMatthias Braun@global.8 = external constant [20 x i8] 43*ca0abaebSMatthias Braun@global.9 = external global %struct.ham 44*ca0abaebSMatthias Braun@global.10 = external global %struct.ham 45*ca0abaebSMatthias Braun@global.11 = external global %struct.ham 46*ca0abaebSMatthias Braun@global.12 = external global %struct.ham 47*ca0abaebSMatthias Braun@global.13 = external global %struct.ham 48*ca0abaebSMatthias Braun@global.14 = external global %struct.ham 49*ca0abaebSMatthias Braun@global.15 = external global %struct.ham 50*ca0abaebSMatthias Braun@global.16 = external global %struct.ham 51*ca0abaebSMatthias Braun@global.17 = external global %struct.ham 52*ca0abaebSMatthias Braun@global.18 = external constant [35 x i8] 53*ca0abaebSMatthias Braun@global.19 = external global %struct.ham 54*ca0abaebSMatthias Braun@global.20 = external constant [53 x i8] 55*ca0abaebSMatthias Braun@global.21 = external global %struct.ham 56*ca0abaebSMatthias Braun@global.22 = external global %struct.ham 57*ca0abaebSMatthias Braun@global.23 = external global %struct.ham 58*ca0abaebSMatthias Braun@global.24 = external constant [32 x i8] 59*ca0abaebSMatthias Braun@global.25 = external global %struct.ham 60*ca0abaebSMatthias Braun@global.26 = external constant [47 x i8] 61*ca0abaebSMatthias Braun@global.27 = external global %struct.ham 62*ca0abaebSMatthias Braun@global.28 = external constant [45 x i8] 63*ca0abaebSMatthias Braun@global.29 = external global %struct.ham 64*ca0abaebSMatthias Braun@global.30 = external global %struct.ham 65*ca0abaebSMatthias Braun@global.31 = external constant [24 x i8] 66*ca0abaebSMatthias Braun@global.32 = external global %struct.ham 67*ca0abaebSMatthias Braun@global.33 = external global %struct.ham 68*ca0abaebSMatthias Braun@global.34 = external global %struct.ham 69*ca0abaebSMatthias Braun@global.35 = external global %struct.ham 70*ca0abaebSMatthias Braun@global.36 = external constant [27 x i8] 71*ca0abaebSMatthias Braun@global.37 = external global %struct.ham 72*ca0abaebSMatthias Braun@global.38 = external constant [10 x i8] 73*ca0abaebSMatthias Braun@global.39 = external global %struct.ham 74*ca0abaebSMatthias Braun@global.40 = external global %struct.ham 75*ca0abaebSMatthias Braun@global.41 = external global %struct.ham 76*ca0abaebSMatthias Braun@global.42 = external global %struct.ham 77*ca0abaebSMatthias Braun@global.43 = external global %struct.ham 78*ca0abaebSMatthias Braun@global.44 = external constant [41 x i8] 79*ca0abaebSMatthias Braun@global.45 = external global %struct.ham 80*ca0abaebSMatthias Braun@global.46 = external global %struct.ham 81*ca0abaebSMatthias Braun@global.47 = external global %struct.ham 82*ca0abaebSMatthias Braun@global.48 = external global %struct.ham 83*ca0abaebSMatthias Braun@global.49 = external constant [52 x i8] 84*ca0abaebSMatthias Braun@global.50 = external constant [47 x i8] 85*ca0abaebSMatthias Braun@global.51 = external global %struct.ham 86*ca0abaebSMatthias Braun@global.52 = external global %struct.ham 87*ca0abaebSMatthias Braun@global.53 = external global %struct.ham 88*ca0abaebSMatthias Braun@global.54 = external global %struct.ham 89*ca0abaebSMatthias Braun@global.55 = external global %struct.ham.3 90*ca0abaebSMatthias Braun@global.56 = external global %struct.bar 91*ca0abaebSMatthias Braun@global.57 = external global i8 92*ca0abaebSMatthias Braun 93*ca0abaebSMatthias Braundeclare %struct.ham* @bar(%struct.ham* returned) 94*ca0abaebSMatthias Braun 95*ca0abaebSMatthias Braundeclare i32 @__cxa_atexit(void (i8*)*, i8*, i8*) 96*ca0abaebSMatthias Braun 97*ca0abaebSMatthias Braundeclare %struct.ham* @wobble(%struct.ham* returned, %struct.ham* ) 98*ca0abaebSMatthias Braun 99*ca0abaebSMatthias Braundeclare i32 @quux(...) 100*ca0abaebSMatthias Braun 101*ca0abaebSMatthias Braundeclare i8* @_Znwm(i32) 102*ca0abaebSMatthias Braun 103*ca0abaebSMatthias Braundeclare i32 @wobble.58(%struct.pluto*, [1 x i32], %struct.ham* , %struct.hoge* ) 104*ca0abaebSMatthias Braun 105*ca0abaebSMatthias Braundeclare i32 @widget(%struct.spam*, [1 x i32], %struct.ham* , %struct.wombat* ) 106*ca0abaebSMatthias Braun 107*ca0abaebSMatthias Braun; Just check we didn't crash and did output something... 108*ca0abaebSMatthias Braun; CHECK-LABEL: func: 109*ca0abaebSMatthias Braun; CHECK: trap 110*ca0abaebSMatthias Braundefine internal void @func() section "__TEXT,__StaticInit,regular,pure_instructions" personality i32 (...)* @quux { 111*ca0abaebSMatthias Braun %tmp = tail call i32 @__cxa_atexit(void (i8*)* bitcast (%struct.ham* (%struct.ham*)* @bar to void (i8*)*), i8* bitcast (%struct.ham* @global.3 to i8*), i8* @global) #0 112*ca0abaebSMatthias Braun %tmp2 = invoke %struct.ham* @wobble(%struct.ham* undef, %struct.ham* @global.9) 113*ca0abaebSMatthias Braun to label %bb14 unwind label %bbunwind 114*ca0abaebSMatthias Braun 115*ca0abaebSMatthias Braunbb14: 116*ca0abaebSMatthias Braun %tmp15 = getelementptr i8, i8* undef, i32 12 117*ca0abaebSMatthias Braun store i8 0, i8* %tmp15 118*ca0abaebSMatthias Braun %tmp16 = icmp eq i8 undef, 0 119*ca0abaebSMatthias Braun br i1 %tmp16, label %bb28, label %bb18 120*ca0abaebSMatthias Braun 121*ca0abaebSMatthias Braunbb18: 122*ca0abaebSMatthias Braun br i1 undef, label %bb21, label %bb29 123*ca0abaebSMatthias Braun 124*ca0abaebSMatthias Braunbb21: 125*ca0abaebSMatthias Braun %tmp22 = call i8* @_Znwm(i32 16) 126*ca0abaebSMatthias Braun store i32 17, i32* getelementptr (%struct.ham, %struct.ham* @global.10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 127*ca0abaebSMatthias Braun %tmp23 = call i8* @_Znwm(i32 32) 128*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 undef, i8* align 1 getelementptr ([27 x i8], [27 x i8]* @global.2, i32 0, i32 0), i32 26, i1 false) 129*ca0abaebSMatthias Braun store i32 33, i32* getelementptr (%struct.ham, %struct.ham* @global.11, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 130*ca0abaebSMatthias Braun store i32 23, i32* getelementptr (%struct.ham, %struct.ham* @global.11, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1) 131*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 undef, i8* align 1 getelementptr ([24 x i8], [24 x i8]* @global.7, i32 0, i32 0), i32 23, i1 false) 132*ca0abaebSMatthias Braun %tmp24 = call i32 @__cxa_atexit(void (i8*)* bitcast (%struct.ham* (%struct.ham*)* @bar to void (i8*)*), i8* bitcast (%struct.ham* @global.11 to i8*), i8* @global) #0 133*ca0abaebSMatthias Braun store i32 49, i32* getelementptr (%struct.ham, %struct.ham* @global.12, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 134*ca0abaebSMatthias Braun store i32 37, i32* getelementptr (%struct.ham, %struct.ham* @global.13, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1) 135*ca0abaebSMatthias Braun call void @llvm.memset.p0i8.i32(i8* align 4 bitcast (%struct.ham* @global.14 to i8*), i8 0, i32 12, i1 false) 136*ca0abaebSMatthias Braun %tmp25 = call i8* @_Znwm(i32 48) 137*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %tmp25, i8* align 1 getelementptr ([40 x i8], [40 x i8]* @global.6, i32 0, i32 0), i32 39, i1 false) 138*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 undef, i8* align 1 getelementptr ([47 x i8], [47 x i8]* @global.4, i32 0, i32 0), i32 46, i1 false) 139*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 undef, i8* align 1 getelementptr ([61 x i8], [61 x i8]* @global.5, i32 0, i32 0), i32 60, i1 false) 140*ca0abaebSMatthias Braun %tmp26 = call i8* @_Znwm(i32 48) 141*ca0abaebSMatthias Braun store i32 65, i32* getelementptr (%struct.ham, %struct.ham* @global.15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 142*ca0abaebSMatthias Braun %tmp27 = icmp eq i8 undef, 0 143*ca0abaebSMatthias Braun br i1 %tmp27, label %bb30, label %bb33 144*ca0abaebSMatthias Braun 145*ca0abaebSMatthias Braunbb28: 146*ca0abaebSMatthias Braun call void @llvm.trap() 147*ca0abaebSMatthias Braun unreachable 148*ca0abaebSMatthias Braun 149*ca0abaebSMatthias Braunbb29: 150*ca0abaebSMatthias Braun call void @llvm.trap() 151*ca0abaebSMatthias Braun unreachable 152*ca0abaebSMatthias Braun 153*ca0abaebSMatthias Braunbb30: 154*ca0abaebSMatthias Braun %tmp31 = icmp eq i32 undef, 37 155*ca0abaebSMatthias Braun br i1 %tmp31, label %bb32, label %bb30 156*ca0abaebSMatthias Braun 157*ca0abaebSMatthias Braunbb32: 158*ca0abaebSMatthias Braun store i8 1, i8* @global.57 159*ca0abaebSMatthias Braun br label %bb33 160*ca0abaebSMatthias Braun 161*ca0abaebSMatthias Braunbb33: 162*ca0abaebSMatthias Braun %tmp34 = call i8* @_Znwm(i32 32) 163*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 undef, i8* align 1 getelementptr ([20 x i8], [20 x i8]* @global.1, i32 0, i32 0), i32 19, i1 false) 164*ca0abaebSMatthias Braun store i32 17, i32* getelementptr (%struct.ham, %struct.ham* @global.16, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 165*ca0abaebSMatthias Braun store i32 65, i32* getelementptr (%struct.ham, %struct.ham* @global.17, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 166*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 undef, i8* align 1 getelementptr ([35 x i8], [35 x i8]* @global.18, i32 0, i32 0), i32 34, i1 false) 167*ca0abaebSMatthias Braun store i32 65, i32* getelementptr (%struct.ham, %struct.ham* @global.19, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 168*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 undef, i8* align 1 getelementptr ([53 x i8], [53 x i8]* @global.20, i32 0, i32 0), i32 52, i1 false) 169*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 undef, i8* align 1 getelementptr ([20 x i8], [20 x i8]* @global.8, i32 0, i32 0), i32 19, i1 false) 170*ca0abaebSMatthias Braun store i32 37, i32* getelementptr (%struct.ham, %struct.ham* @global.21, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1) 171*ca0abaebSMatthias Braun %tmp35 = call i8* @_Znwm(i32 32) 172*ca0abaebSMatthias Braun store i8 16, i8* bitcast (%struct.ham* @global.22 to i8*) 173*ca0abaebSMatthias Braun %tmp36 = call i8* @_Znwm(i32 32) 174*ca0abaebSMatthias Braun store i32 31, i32* getelementptr (%struct.ham, %struct.ham* @global.23, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1) 175*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %tmp36, i8* align 1 getelementptr ([32 x i8], [32 x i8]* @global.24, i32 0, i32 0), i32 31, i1 false) 176*ca0abaebSMatthias Braun %tmp37 = getelementptr i8, i8* %tmp36, i32 31 177*ca0abaebSMatthias Braun store i8 0, i8* %tmp37 178*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 undef, i8* align 1 getelementptr ([47 x i8], [47 x i8]* @global.26, i32 0, i32 0), i32 46, i1 false) 179*ca0abaebSMatthias Braun %tmp38 = call i32 @__cxa_atexit(void (i8*)* bitcast (%struct.ham* (%struct.ham*)* @bar to void (i8*)*), i8* bitcast (%struct.ham* @global.25 to i8*), i8* @global) #0 180*ca0abaebSMatthias Braun %tmp39 = call i8* @_Znwm(i32 48) 181*ca0abaebSMatthias Braun store i32 44, i32* getelementptr (%struct.ham, %struct.ham* @global.27, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1) 182*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %tmp39, i8* align 1 getelementptr ([45 x i8], [45 x i8]* @global.28, i32 0, i32 0), i32 44, i1 false) 183*ca0abaebSMatthias Braun %tmp40 = getelementptr i8, i8* %tmp39, i32 44 184*ca0abaebSMatthias Braun store i8 0, i8* %tmp40 185*ca0abaebSMatthias Braun call void @llvm.memset.p0i8.i32(i8* align 4 bitcast (%struct.ham* @global.29 to i8*), i8 0, i32 12, i1 false) 186*ca0abaebSMatthias Braun %tmp41 = call i8* @_Znwm(i32 32) 187*ca0abaebSMatthias Braun store i32 23, i32* getelementptr (%struct.ham, %struct.ham* @global.30, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1) 188*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %tmp41, i8* align 1 getelementptr ([24 x i8], [24 x i8]* @global.31, i32 0, i32 0), i32 23, i1 false) 189*ca0abaebSMatthias Braun %tmp42 = getelementptr i8, i8* %tmp41, i32 23 190*ca0abaebSMatthias Braun store i8 0, i8* %tmp42 191*ca0abaebSMatthias Braun call void @llvm.memset.p0i8.i32(i8* align 4 bitcast (%struct.ham* @global.32 to i8*), i8 0, i32 12, i1 false) 192*ca0abaebSMatthias Braun store i8 16, i8* bitcast (%struct.ham* @global.32 to i8*) 193*ca0abaebSMatthias Braun %tmp43 = call i32 @__cxa_atexit(void (i8*)* bitcast (%struct.ham* (%struct.ham*)* @bar to void (i8*)*), i8* bitcast (%struct.ham* @global.33 to i8*), i8* @global) #0 194*ca0abaebSMatthias Braun %tmp44 = call i8* @_Znwm(i32 16) 195*ca0abaebSMatthias Braun call void @llvm.memset.p0i8.i32(i8* align 4 bitcast (%struct.ham* @global.34 to i8*), i8 0, i32 12, i1 false) 196*ca0abaebSMatthias Braun call void @llvm.memset.p0i8.i32(i8* align 4 bitcast (%struct.ham* @global.9 to i8*), i8 0, i32 12, i1 false) 197*ca0abaebSMatthias Braun %tmp45 = call i8* @_Znwm(i32 32) 198*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %tmp45, i8* align 1 getelementptr ([27 x i8], [27 x i8]* @global.36, i32 0, i32 0), i32 26, i1 false) 199*ca0abaebSMatthias Braun call void @llvm.memset.p0i8.i32(i8* align 4 bitcast (%struct.ham* @global.37 to i8*), i8 0, i32 12, i1 false) 200*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 getelementptr (%struct.snork, %struct.snork* bitcast (%struct.ham* @global.37 to %struct.snork*), i32 0, i32 1, i32 0), i8* align 1 getelementptr ([10 x i8], [10 x i8]* @global.38, i32 0, i32 0), i32 9, i1 false) 201*ca0abaebSMatthias Braun store i32 17, i32* getelementptr (%struct.ham, %struct.ham* @global.39, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 202*ca0abaebSMatthias Braun %tmp46 = call i32 @__cxa_atexit(void (i8*)* bitcast (%struct.ham* (%struct.ham*)* @bar to void (i8*)*), i8* bitcast (%struct.ham* @global.40 to i8*), i8* @global) #0 203*ca0abaebSMatthias Braun %tmp47 = call i8* @_Znwm(i32 32) 204*ca0abaebSMatthias Braun %tmp48 = getelementptr i8, i8* %tmp47, i32 21 205*ca0abaebSMatthias Braun store i8 0, i8* %tmp48 206*ca0abaebSMatthias Braun store i32 33, i32* getelementptr (%struct.ham, %struct.ham* @global.41, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 207*ca0abaebSMatthias Braun store i32 15, i32* getelementptr (%struct.ham, %struct.ham* @global.42, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1) 208*ca0abaebSMatthias Braun %tmp49 = call i32 @__cxa_atexit(void (i8*)* bitcast (%struct.ham* (%struct.ham*)* @bar to void (i8*)*), i8* bitcast (%struct.ham* @global.43 to i8*), i8* @global) #0 209*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 undef, i8* align 1 getelementptr ([41 x i8], [41 x i8]* @global.44, i32 0, i32 0), i32 40, i1 false) 210*ca0abaebSMatthias Braun %tmp50 = call i32 @__cxa_atexit(void (i8*)* bitcast (%struct.ham* (%struct.ham*)* @bar to void (i8*)*), i8* bitcast (%struct.ham* @global.45 to i8*), i8* @global) #0 211*ca0abaebSMatthias Braun %tmp51 = call i32 @__cxa_atexit(void (i8*)* bitcast (%struct.ham* (%struct.ham*)* @bar to void (i8*)*), i8* bitcast (%struct.ham* @global.46 to i8*), i8* @global) #0 212*ca0abaebSMatthias Braun %tmp52 = call i8* @_Znwm(i32 32) 213*ca0abaebSMatthias Braun store i8* %tmp52, i8** getelementptr (%struct.ham, %struct.ham* @global.47, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2) 214*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 undef, i8* align 1 getelementptr ([52 x i8], [52 x i8]* @global.49, i32 0, i32 0), i32 51, i1 false) 215*ca0abaebSMatthias Braun %tmp53 = call i32 @__cxa_atexit(void (i8*)* bitcast (%struct.ham* (%struct.ham*)* @bar to void (i8*)*), i8* bitcast (%struct.ham* @global.48 to i8*), i8* @global) #0 216*ca0abaebSMatthias Braun call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 undef, i8* align 1 getelementptr ([47 x i8], [47 x i8]* @global.50, i32 0, i32 0), i32 46, i1 false) 217*ca0abaebSMatthias Braun store i32 33, i32* getelementptr (%struct.ham, %struct.ham* @global.51, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 218*ca0abaebSMatthias Braun store i32 37, i32* getelementptr (%struct.ham, %struct.ham* @global.52, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1) 219*ca0abaebSMatthias Braun %tmp54 = invoke %struct.ham* @wobble(%struct.ham* undef, %struct.ham* @global.54) 220*ca0abaebSMatthias Braun to label %bb58 unwind label %bbunwind 221*ca0abaebSMatthias Braun 222*ca0abaebSMatthias Braunbb58: 223*ca0abaebSMatthias Braun %tmp59 = invoke i32 @wobble.58(%struct.pluto* getelementptr (%struct.ham.3, %struct.ham.3* @global.55, i32 0, i32 0), [1 x i32] [i32 ptrtoint (%struct.zot* getelementptr (%struct.ham.3, %struct.ham.3* @global.55, i32 0, i32 0, i32 1, i32 0, i32 0) to i32)], %struct.ham* undef, %struct.hoge* undef) 224*ca0abaebSMatthias Braun to label %bb71 unwind label %bbunwind 225*ca0abaebSMatthias Braun 226*ca0abaebSMatthias Braunbb71: 227*ca0abaebSMatthias Braun %tmp72 = invoke i32 @widget(%struct.spam* getelementptr (%struct.bar, %struct.bar* @global.56, i32 0, i32 0), [1 x i32] [i32 ptrtoint (%struct.zot* getelementptr (%struct.bar, %struct.bar* @global.56, i32 0, i32 0, i32 1, i32 0, i32 0) to i32)], %struct.ham* undef, %struct.wombat* undef) 228*ca0abaebSMatthias Braun to label %bb73 unwind label %bbunwind 229*ca0abaebSMatthias Braun 230*ca0abaebSMatthias Braunbb73: 231*ca0abaebSMatthias Braun ret void 232*ca0abaebSMatthias Braun 233*ca0abaebSMatthias Braunbbunwind: 234*ca0abaebSMatthias Braun %tmp75 = landingpad { i8*, i32 } 235*ca0abaebSMatthias Braun cleanup 236*ca0abaebSMatthias Braun resume { i8*, i32 } undef 237*ca0abaebSMatthias Braun} 238*ca0abaebSMatthias Braun 239*ca0abaebSMatthias Braundeclare void @llvm.trap() 240*ca0abaebSMatthias Braun 241*ca0abaebSMatthias Braundeclare void @llvm.memcpy.p0i8.p0i8.i32(i8* , i8* , i32, i1) 242*ca0abaebSMatthias Braun 243*ca0abaebSMatthias Braundeclare void @llvm.memset.p0i8.i32(i8* , i8, i32, i1) 244*ca0abaebSMatthias Braun 245*ca0abaebSMatthias Braunattributes #0 = { nounwind } 246