1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=core2 -mtriple=i686-pc-win32 < %s | FileCheck %s --check-prefix=ASM 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=core2 -mtriple=i686-pc-win32 < %s -filetype=obj | llvm-readobj -codeview | FileCheck %s --check-prefix=OBJ 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; This LL file was generated by running 'clang -O1 -g -gcodeview' on the 5*9880d681SAndroid Build Coastguard Worker; following code: 6*9880d681SAndroid Build Coastguard Worker; 1: extern volatile int x; 7*9880d681SAndroid Build Coastguard Worker; 2: static inline void foo() { 8*9880d681SAndroid Build Coastguard Worker; 3: int y = 1; 9*9880d681SAndroid Build Coastguard Worker; 4: x += (int)&y; 10*9880d681SAndroid Build Coastguard Worker; 5: x += 2; 11*9880d681SAndroid Build Coastguard Worker; 6: x += 3; 12*9880d681SAndroid Build Coastguard Worker; 7: } 13*9880d681SAndroid Build Coastguard Worker; 8: static inline void bar() { 14*9880d681SAndroid Build Coastguard Worker; 9: x += 4; 15*9880d681SAndroid Build Coastguard Worker; 10: foo(); 16*9880d681SAndroid Build Coastguard Worker; 11: x += 5; 17*9880d681SAndroid Build Coastguard Worker; 12: } 18*9880d681SAndroid Build Coastguard Worker; 13: void baz() { 19*9880d681SAndroid Build Coastguard Worker; 14: x += 6; 20*9880d681SAndroid Build Coastguard Worker; 15: bar(); 21*9880d681SAndroid Build Coastguard Worker; 16: x += 7; 22*9880d681SAndroid Build Coastguard Worker; 17: } 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Worker; ASM: .cv_loc 0 1 13 0 is_stmt 0 # t.cpp:13:0 25*9880d681SAndroid Build Coastguard Worker; ASM: .cv_loc 0 1 14 5 # t.cpp:14:5 26*9880d681SAndroid Build Coastguard Worker; ASM: addl $6, "?x@@3HC" 27*9880d681SAndroid Build Coastguard Worker; ASM: .cv_loc 1 1 9 5 # t.cpp:9:5 28*9880d681SAndroid Build Coastguard Worker; ASM: addl $4, "?x@@3HC" 29*9880d681SAndroid Build Coastguard Worker; ASM: .cv_loc 2 1 3 7 # t.cpp:3:7 30*9880d681SAndroid Build Coastguard Worker; ASM: .cv_loc 2 1 4 5 # t.cpp:4:5 31*9880d681SAndroid Build Coastguard Worker; ASM: addl {{.*}}, "?x@@3HC" 32*9880d681SAndroid Build Coastguard Worker; ASM: .cv_loc 2 1 5 5 # t.cpp:5:5 33*9880d681SAndroid Build Coastguard Worker; ASM: addl $2, "?x@@3HC" 34*9880d681SAndroid Build Coastguard Worker; ASM: .cv_loc 2 1 6 5 # t.cpp:6:5 35*9880d681SAndroid Build Coastguard Worker; ASM: addl $3, "?x@@3HC" 36*9880d681SAndroid Build Coastguard Worker; ASM: .cv_loc 1 1 11 5 # t.cpp:11:5 37*9880d681SAndroid Build Coastguard Worker; ASM: addl $5, "?x@@3HC" 38*9880d681SAndroid Build Coastguard Worker; ASM: .cv_loc 0 1 16 5 # t.cpp:16:5 39*9880d681SAndroid Build Coastguard Worker; ASM: addl $7, "?x@@3HC" 40*9880d681SAndroid Build Coastguard Worker; ASM: .cv_loc 0 1 17 1 # t.cpp:17:1 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Worker; ASM: .section .debug$S,"dr" 43*9880d681SAndroid Build Coastguard Worker; ASM: .long 246 # Inlinee lines subsection 44*9880d681SAndroid Build Coastguard Worker; ASM: .long [[inline_end:.*]]-[[inline_beg:.*]] # 45*9880d681SAndroid Build Coastguard Worker; ASM: [[inline_beg]]: 46*9880d681SAndroid Build Coastguard Worker; ASM: .long 0 47*9880d681SAndroid Build Coastguard Worker; ASM: # Inlined function bar starts at t.cpp:8 48*9880d681SAndroid Build Coastguard Worker; ASM: .long 4098 # Type index of inlined function 49*9880d681SAndroid Build Coastguard Worker; ASM: .long 0 # Offset into filechecksum table 50*9880d681SAndroid Build Coastguard Worker; ASM: .long 8 # Starting line number 51*9880d681SAndroid Build Coastguard Worker; ASM: # Inlined function foo starts at t.cpp:2 52*9880d681SAndroid Build Coastguard Worker; ASM: .long 4099 53*9880d681SAndroid Build Coastguard Worker; ASM: .long 0 54*9880d681SAndroid Build Coastguard Worker; ASM: .long 2 55*9880d681SAndroid Build Coastguard Worker; ASM: [[inline_end]]: 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Worker; ASM: .long 241 # Symbol subsection for baz 58*9880d681SAndroid Build Coastguard Worker; ASM: .long {{.*}} # Subsection size 59*9880d681SAndroid Build Coastguard Worker; ASM: .short 4429 60*9880d681SAndroid Build Coastguard Worker; ASM: .long 61*9880d681SAndroid Build Coastguard Worker; ASM: .long 62*9880d681SAndroid Build Coastguard Worker; ASM: .long 63*9880d681SAndroid Build Coastguard Worker; ASM: .cv_inline_linetable 1 1 8 Lfunc_begin0 Lfunc_end0 contains 2 64*9880d681SAndroid Build Coastguard Worker; ASM: .short 4429 65*9880d681SAndroid Build Coastguard Worker; ASM: .long 66*9880d681SAndroid Build Coastguard Worker; ASM: .long 67*9880d681SAndroid Build Coastguard Worker; ASM: .long 68*9880d681SAndroid Build Coastguard Worker; ASM: .cv_inline_linetable 2 1 2 Lfunc_begin0 Lfunc_end0 69*9880d681SAndroid Build Coastguard Worker; ASM: .short 4430 70*9880d681SAndroid Build Coastguard Worker; ASM: .short 4430 71*9880d681SAndroid Build Coastguard Worker 72*9880d681SAndroid Build Coastguard Worker; ASM: .section .debug$T,"dr" 73*9880d681SAndroid Build Coastguard Worker; ASM: .long 4 # Debug section magic 74*9880d681SAndroid Build Coastguard Worker; ASM: # ArgList (0x1000) { 75*9880d681SAndroid Build Coastguard Worker; ASM: # TypeLeafKind: LF_ARGLIST (0x1201) 76*9880d681SAndroid Build Coastguard Worker; ASM: # NumArgs: 0 77*9880d681SAndroid Build Coastguard Worker; ASM: # Arguments [ 78*9880d681SAndroid Build Coastguard Worker; ASM: # ] 79*9880d681SAndroid Build Coastguard Worker; ASM: # } 80*9880d681SAndroid Build Coastguard Worker; ASM: .byte 0x06, 0x00, 0x01, 0x12 81*9880d681SAndroid Build Coastguard Worker; ASM: .byte 0x00, 0x00, 0x00, 0x00 82*9880d681SAndroid Build Coastguard Worker; ASM: # Procedure (0x1001) { 83*9880d681SAndroid Build Coastguard Worker; ASM: # TypeLeafKind: LF_PROCEDURE (0x1008) 84*9880d681SAndroid Build Coastguard Worker; ASM: # ReturnType: void (0x3) 85*9880d681SAndroid Build Coastguard Worker; ASM: # CallingConvention: NearC (0x0) 86*9880d681SAndroid Build Coastguard Worker; ASM: # FunctionOptions [ (0x0) 87*9880d681SAndroid Build Coastguard Worker; ASM: # ] 88*9880d681SAndroid Build Coastguard Worker; ASM: # NumParameters: 0 89*9880d681SAndroid Build Coastguard Worker; ASM: # ArgListType: () (0x1000) 90*9880d681SAndroid Build Coastguard Worker; ASM: # } 91*9880d681SAndroid Build Coastguard Worker; ASM: .byte 0x0e, 0x00, 0x08, 0x10 92*9880d681SAndroid Build Coastguard Worker; ASM: .byte 0x03, 0x00, 0x00, 0x00 93*9880d681SAndroid Build Coastguard Worker; ASM: .byte 0x00, 0x00, 0x00, 0x00 94*9880d681SAndroid Build Coastguard Worker; ASM: .byte 0x00, 0x10, 0x00, 0x00 95*9880d681SAndroid Build Coastguard Worker; ASM: # FuncId (0x1002) { 96*9880d681SAndroid Build Coastguard Worker; ASM: # TypeLeafKind: LF_FUNC_ID (0x1601) 97*9880d681SAndroid Build Coastguard Worker; ASM: # ParentScope: 0x0 98*9880d681SAndroid Build Coastguard Worker; ASM: # FunctionType: void () (0x1001) 99*9880d681SAndroid Build Coastguard Worker; ASM: # Name: bar 100*9880d681SAndroid Build Coastguard Worker; ASM: # } 101*9880d681SAndroid Build Coastguard Worker; ASM: .byte 0x0e, 0x00, 0x01, 0x16 102*9880d681SAndroid Build Coastguard Worker; ASM: .byte 0x00, 0x00, 0x00, 0x00 103*9880d681SAndroid Build Coastguard Worker; ASM: .byte 0x01, 0x10, 0x00, 0x00 104*9880d681SAndroid Build Coastguard Worker; ASM: .byte 0x62, 0x61, 0x72, 0x00 105*9880d681SAndroid Build Coastguard Worker; ASM: # FuncId (0x1003) { 106*9880d681SAndroid Build Coastguard Worker; ASM: # TypeLeafKind: LF_FUNC_ID (0x1601) 107*9880d681SAndroid Build Coastguard Worker; ASM: # ParentScope: 0x0 108*9880d681SAndroid Build Coastguard Worker; ASM: # FunctionType: void () (0x1001) 109*9880d681SAndroid Build Coastguard Worker; ASM: # Name: foo 110*9880d681SAndroid Build Coastguard Worker; ASM: # } 111*9880d681SAndroid Build Coastguard Worker; ASM: .byte 0x0e, 0x00, 0x01, 0x16 112*9880d681SAndroid Build Coastguard Worker; ASM: .byte 0x00, 0x00, 0x00, 0x00 113*9880d681SAndroid Build Coastguard Worker; ASM: .byte 0x01, 0x10, 0x00, 0x00 114*9880d681SAndroid Build Coastguard Worker; ASM: .byte 0x66, 0x6f, 0x6f, 0x00 115*9880d681SAndroid Build Coastguard Worker 116*9880d681SAndroid Build Coastguard Worker; We should only the LF_FUNC_ID records that we needed to reference. 117*9880d681SAndroid Build Coastguard Worker; OBJ: CodeViewTypes [ 118*9880d681SAndroid Build Coastguard Worker; OBJ: Section: .debug$T 119*9880d681SAndroid Build Coastguard Worker; OBJ: ArgList (0x1000) { 120*9880d681SAndroid Build Coastguard Worker; OBJ: TypeLeafKind: LF_ARGLIST (0x1201) 121*9880d681SAndroid Build Coastguard Worker; OBJ: NumArgs: 0 122*9880d681SAndroid Build Coastguard Worker; OBJ: } 123*9880d681SAndroid Build Coastguard Worker; OBJ: Procedure (0x1001) { 124*9880d681SAndroid Build Coastguard Worker; OBJ: TypeLeafKind: LF_PROCEDURE (0x1008) 125*9880d681SAndroid Build Coastguard Worker; OBJ: ReturnType: void (0x3) 126*9880d681SAndroid Build Coastguard Worker; OBJ: NumParameters: 0 127*9880d681SAndroid Build Coastguard Worker; OBJ: ArgListType: () (0x1000) 128*9880d681SAndroid Build Coastguard Worker; OBJ: } 129*9880d681SAndroid Build Coastguard Worker; OBJ: FuncId (0x1002) { 130*9880d681SAndroid Build Coastguard Worker; OBJ: TypeLeafKind: LF_FUNC_ID (0x1601) 131*9880d681SAndroid Build Coastguard Worker; OBJ: ParentScope: 0x0 132*9880d681SAndroid Build Coastguard Worker; OBJ: FunctionType: void () (0x1001) 133*9880d681SAndroid Build Coastguard Worker; OBJ: Name: bar 134*9880d681SAndroid Build Coastguard Worker; OBJ: } 135*9880d681SAndroid Build Coastguard Worker; OBJ: FuncId (0x1003) { 136*9880d681SAndroid Build Coastguard Worker; OBJ: TypeLeafKind: LF_FUNC_ID (0x1601) 137*9880d681SAndroid Build Coastguard Worker; OBJ: ParentScope: 0x0 138*9880d681SAndroid Build Coastguard Worker; OBJ: FunctionType: void () (0x1001) 139*9880d681SAndroid Build Coastguard Worker; OBJ: Name: foo 140*9880d681SAndroid Build Coastguard Worker; OBJ: } 141*9880d681SAndroid Build Coastguard Worker; OBJ: FuncId (0x1004) { 142*9880d681SAndroid Build Coastguard Worker; OBJ: TypeLeafKind: LF_FUNC_ID (0x1601) 143*9880d681SAndroid Build Coastguard Worker; OBJ: ParentScope: 0x0 144*9880d681SAndroid Build Coastguard Worker; OBJ: FunctionType: void () (0x1001) 145*9880d681SAndroid Build Coastguard Worker; OBJ: Name: baz 146*9880d681SAndroid Build Coastguard Worker; OBJ: } 147*9880d681SAndroid Build Coastguard Worker; OBJ-NOT: TypeLeafKind: LF_FUNC_ID 148*9880d681SAndroid Build Coastguard Worker; OBJ: ] 149*9880d681SAndroid Build Coastguard Worker 150*9880d681SAndroid Build Coastguard Worker; OBJ: Subsection [ 151*9880d681SAndroid Build Coastguard Worker; OBJ: SubSectionType: InlineeLines (0xF6) 152*9880d681SAndroid Build Coastguard Worker; OBJ: SubSectionSize: 0x1C 153*9880d681SAndroid Build Coastguard Worker; OBJ: InlineeSourceLine { 154*9880d681SAndroid Build Coastguard Worker; OBJ: Inlinee: bar (0x1002) 155*9880d681SAndroid Build Coastguard Worker; OBJ: FileID: D:\src\llvm\build\t.cpp (0x0) 156*9880d681SAndroid Build Coastguard Worker; OBJ: SourceLineNum: 8 157*9880d681SAndroid Build Coastguard Worker; OBJ: } 158*9880d681SAndroid Build Coastguard Worker; OBJ: InlineeSourceLine { 159*9880d681SAndroid Build Coastguard Worker; OBJ: Inlinee: foo (0x1003) 160*9880d681SAndroid Build Coastguard Worker; OBJ: FileID: D:\src\llvm\build\t.cpp (0x0) 161*9880d681SAndroid Build Coastguard Worker; OBJ: SourceLineNum: 2 162*9880d681SAndroid Build Coastguard Worker; OBJ: } 163*9880d681SAndroid Build Coastguard Worker; OBJ: ] 164*9880d681SAndroid Build Coastguard Worker; OBJ: Subsection [ 165*9880d681SAndroid Build Coastguard Worker; OBJ: SubSectionType: Symbols (0xF1) 166*9880d681SAndroid Build Coastguard Worker; OBJ: ProcStart { 167*9880d681SAndroid Build Coastguard Worker; OBJ: PtrParent: 0x0 168*9880d681SAndroid Build Coastguard Worker; OBJ: PtrEnd: 0x0 169*9880d681SAndroid Build Coastguard Worker; OBJ: PtrNext: 0x0 170*9880d681SAndroid Build Coastguard Worker; OBJ: CodeSize: 0x3D 171*9880d681SAndroid Build Coastguard Worker; OBJ: DbgStart: 0x0 172*9880d681SAndroid Build Coastguard Worker; OBJ: DbgEnd: 0x0 173*9880d681SAndroid Build Coastguard Worker; OBJ: FunctionType: baz (0x1004) 174*9880d681SAndroid Build Coastguard Worker; OBJ: CodeOffset: ?baz@@YAXXZ+0x0 175*9880d681SAndroid Build Coastguard Worker; OBJ: Segment: 0x0 176*9880d681SAndroid Build Coastguard Worker; OBJ: Flags [ (0x0) 177*9880d681SAndroid Build Coastguard Worker; OBJ: ] 178*9880d681SAndroid Build Coastguard Worker; OBJ: DisplayName: baz 179*9880d681SAndroid Build Coastguard Worker; OBJ: LinkageName: ?baz@@YAXXZ 180*9880d681SAndroid Build Coastguard Worker; OBJ: } 181*9880d681SAndroid Build Coastguard Worker; OBJ: InlineSite { 182*9880d681SAndroid Build Coastguard Worker; OBJ: PtrParent: 0x0 183*9880d681SAndroid Build Coastguard Worker; OBJ: PtrEnd: 0x0 184*9880d681SAndroid Build Coastguard Worker; OBJ: Inlinee: bar (0x1002) 185*9880d681SAndroid Build Coastguard Worker; OBJ: BinaryAnnotations [ 186*9880d681SAndroid Build Coastguard Worker; OBJ-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x8, LineOffset: 1} 187*9880d681SAndroid Build Coastguard Worker; OBJ-NEXT: ChangeLineOffset: -6 188*9880d681SAndroid Build Coastguard Worker; OBJ-NEXT: ChangeCodeOffset: 0x7 189*9880d681SAndroid Build Coastguard Worker; OBJ-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0xA, LineOffset: 1} 190*9880d681SAndroid Build Coastguard Worker; OBJ-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x6, LineOffset: 1} 191*9880d681SAndroid Build Coastguard Worker; OBJ-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x7, LineOffset: 1} 192*9880d681SAndroid Build Coastguard Worker; OBJ-NEXT: ChangeLineOffset: 5 193*9880d681SAndroid Build Coastguard Worker; OBJ-NEXT: ChangeCodeOffset: 0x7 194*9880d681SAndroid Build Coastguard Worker; OBJ-NEXT: ChangeCodeLength: 0x7 195*9880d681SAndroid Build Coastguard Worker; OBJ: ] 196*9880d681SAndroid Build Coastguard Worker; OBJ: } 197*9880d681SAndroid Build Coastguard Worker; OBJ: InlineSite { 198*9880d681SAndroid Build Coastguard Worker; OBJ: PtrParent: 0x0 199*9880d681SAndroid Build Coastguard Worker; OBJ: PtrEnd: 0x0 200*9880d681SAndroid Build Coastguard Worker; OBJ: Inlinee: foo (0x1003) 201*9880d681SAndroid Build Coastguard Worker; OBJ: BinaryAnnotations [ 202*9880d681SAndroid Build Coastguard Worker; OBJ-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0xF, LineOffset: 1} 203*9880d681SAndroid Build Coastguard Worker; OBJ-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0xA, LineOffset: 1} 204*9880d681SAndroid Build Coastguard Worker; OBJ-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x6, LineOffset: 1} 205*9880d681SAndroid Build Coastguard Worker; OBJ-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x7, LineOffset: 1} 206*9880d681SAndroid Build Coastguard Worker; OBJ-NEXT: ChangeCodeLength: 0x7 207*9880d681SAndroid Build Coastguard Worker; OBJ: ] 208*9880d681SAndroid Build Coastguard Worker; OBJ: } 209*9880d681SAndroid Build Coastguard Worker; OBJ: InlineSiteEnd { 210*9880d681SAndroid Build Coastguard Worker; OBJ: } 211*9880d681SAndroid Build Coastguard Worker; OBJ: InlineSiteEnd { 212*9880d681SAndroid Build Coastguard Worker; OBJ: } 213*9880d681SAndroid Build Coastguard Worker; OBJ: ProcEnd 214*9880d681SAndroid Build Coastguard Worker; OBJ: ] 215*9880d681SAndroid Build Coastguard Worker 216*9880d681SAndroid Build Coastguard Worker; ModuleID = 't.cpp' 217*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128" 218*9880d681SAndroid Build Coastguard Workertarget triple = "x86_64-pc-windows-msvc18.0.0" 219*9880d681SAndroid Build Coastguard Worker 220*9880d681SAndroid Build Coastguard Worker@"\01?x@@3HC" = external global i32, align 4 221*9880d681SAndroid Build Coastguard Worker 222*9880d681SAndroid Build Coastguard Worker; Function Attrs: norecurse nounwind uwtable 223*9880d681SAndroid Build Coastguard Workerdefine void @"\01?baz@@YAXXZ"() #0 !dbg !4 { 224*9880d681SAndroid Build Coastguard Workerentry: 225*9880d681SAndroid Build Coastguard Worker %y.i.i = alloca i32, align 4 226*9880d681SAndroid Build Coastguard Worker %0 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !12, !tbaa !13 227*9880d681SAndroid Build Coastguard Worker %add = add nsw i32 %0, 6, !dbg !12 228*9880d681SAndroid Build Coastguard Worker store volatile i32 %add, i32* @"\01?x@@3HC", align 4, !dbg !12, !tbaa !13 229*9880d681SAndroid Build Coastguard Worker %1 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !17, !tbaa !13 230*9880d681SAndroid Build Coastguard Worker %add.i = add nsw i32 %1, 4, !dbg !17 231*9880d681SAndroid Build Coastguard Worker store volatile i32 %add.i, i32* @"\01?x@@3HC", align 4, !dbg !17, !tbaa !13 232*9880d681SAndroid Build Coastguard Worker %2 = bitcast i32* %y.i.i to i8*, !dbg !19 233*9880d681SAndroid Build Coastguard Worker call void @llvm.lifetime.start(i64 4, i8* %2) #2, !dbg !19 234*9880d681SAndroid Build Coastguard Worker store i32 1, i32* %y.i.i, align 4, !dbg !21, !tbaa !13 235*9880d681SAndroid Build Coastguard Worker %3 = ptrtoint i32* %y.i.i to i64, !dbg !22 236*9880d681SAndroid Build Coastguard Worker %4 = trunc i64 %3 to i32, !dbg !22 237*9880d681SAndroid Build Coastguard Worker %5 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !23, !tbaa !13 238*9880d681SAndroid Build Coastguard Worker %add.i.i = add nsw i32 %5, %4, !dbg !23 239*9880d681SAndroid Build Coastguard Worker store volatile i32 %add.i.i, i32* @"\01?x@@3HC", align 4, !dbg !23, !tbaa !13 240*9880d681SAndroid Build Coastguard Worker %6 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !24, !tbaa !13 241*9880d681SAndroid Build Coastguard Worker %add1.i.i = add nsw i32 %6, 2, !dbg !24 242*9880d681SAndroid Build Coastguard Worker store volatile i32 %add1.i.i, i32* @"\01?x@@3HC", align 4, !dbg !24, !tbaa !13 243*9880d681SAndroid Build Coastguard Worker %7 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !25, !tbaa !13 244*9880d681SAndroid Build Coastguard Worker %add2.i.i = add nsw i32 %7, 3, !dbg !25 245*9880d681SAndroid Build Coastguard Worker store volatile i32 %add2.i.i, i32* @"\01?x@@3HC", align 4, !dbg !25, !tbaa !13 246*9880d681SAndroid Build Coastguard Worker call void @llvm.lifetime.end(i64 4, i8* %2) #2, !dbg !26 247*9880d681SAndroid Build Coastguard Worker %8 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !27, !tbaa !13 248*9880d681SAndroid Build Coastguard Worker %add1.i = add nsw i32 %8, 5, !dbg !27 249*9880d681SAndroid Build Coastguard Worker store volatile i32 %add1.i, i32* @"\01?x@@3HC", align 4, !dbg !27, !tbaa !13 250*9880d681SAndroid Build Coastguard Worker %9 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !28, !tbaa !13 251*9880d681SAndroid Build Coastguard Worker %add1 = add nsw i32 %9, 7, !dbg !28 252*9880d681SAndroid Build Coastguard Worker store volatile i32 %add1, i32* @"\01?x@@3HC", align 4, !dbg !28, !tbaa !13 253*9880d681SAndroid Build Coastguard Worker ret void, !dbg !29 254*9880d681SAndroid Build Coastguard Worker} 255*9880d681SAndroid Build Coastguard Worker 256*9880d681SAndroid Build Coastguard Worker; Function Attrs: argmemonly nounwind 257*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.lifetime.start(i64, i8* nocapture) #1 258*9880d681SAndroid Build Coastguard Worker 259*9880d681SAndroid Build Coastguard Worker; Function Attrs: argmemonly nounwind 260*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.lifetime.end(i64, i8* nocapture) #1 261*9880d681SAndroid Build Coastguard Worker 262*9880d681SAndroid Build Coastguard Workerattributes #0 = { norecurse nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } 263*9880d681SAndroid Build Coastguard Workerattributes #1 = { argmemonly nounwind } 264*9880d681SAndroid Build Coastguard Workerattributes #2 = { nounwind } 265*9880d681SAndroid Build Coastguard Worker 266*9880d681SAndroid Build Coastguard Worker!llvm.dbg.cu = !{!0} 267*9880d681SAndroid Build Coastguard Worker!llvm.module.flags = !{!8, !9, !10} 268*9880d681SAndroid Build Coastguard Worker!llvm.ident = !{!11} 269*9880d681SAndroid Build Coastguard Worker 270*9880d681SAndroid Build Coastguard Worker!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.9.0 ", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !2) 271*9880d681SAndroid Build Coastguard Worker!1 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild") 272*9880d681SAndroid Build Coastguard Worker!2 = !{} 273*9880d681SAndroid Build Coastguard Worker!4 = distinct !DISubprogram(name: "baz", scope: !1, file: !1, line: 13, type: !5, isLocal: false, isDefinition: true, scopeLine: 13, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !2) 274*9880d681SAndroid Build Coastguard Worker!5 = !DISubroutineType(types: !2) 275*9880d681SAndroid Build Coastguard Worker!6 = distinct !DISubprogram(name: "bar", scope: !1, file: !1, line: 8, type: !5, isLocal: true, isDefinition: true, scopeLine: 8, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !2) 276*9880d681SAndroid Build Coastguard Worker!7 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 2, type: !5, isLocal: true, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !2) 277*9880d681SAndroid Build Coastguard Worker!8 = !{i32 2, !"CodeView", i32 1} 278*9880d681SAndroid Build Coastguard Worker!9 = !{i32 2, !"Debug Info Version", i32 3} 279*9880d681SAndroid Build Coastguard Worker!10 = !{i32 1, !"PIC Level", i32 2} 280*9880d681SAndroid Build Coastguard Worker!11 = !{!"clang version 3.9.0 "} 281*9880d681SAndroid Build Coastguard Worker!12 = !DILocation(line: 14, column: 5, scope: !4) 282*9880d681SAndroid Build Coastguard Worker!13 = !{!14, !14, i64 0} 283*9880d681SAndroid Build Coastguard Worker!14 = !{!"int", !15, i64 0} 284*9880d681SAndroid Build Coastguard Worker!15 = !{!"omnipotent char", !16, i64 0} 285*9880d681SAndroid Build Coastguard Worker!16 = !{!"Simple C/C++ TBAA"} 286*9880d681SAndroid Build Coastguard Worker!17 = !DILocation(line: 9, column: 5, scope: !6, inlinedAt: !18) 287*9880d681SAndroid Build Coastguard Worker!18 = distinct !DILocation(line: 15, column: 3, scope: !4) 288*9880d681SAndroid Build Coastguard Worker!19 = !DILocation(line: 3, column: 3, scope: !7, inlinedAt: !20) 289*9880d681SAndroid Build Coastguard Worker!20 = distinct !DILocation(line: 10, column: 3, scope: !6, inlinedAt: !18) 290*9880d681SAndroid Build Coastguard Worker!21 = !DILocation(line: 3, column: 7, scope: !7, inlinedAt: !20) 291*9880d681SAndroid Build Coastguard Worker!22 = !DILocation(line: 4, column: 8, scope: !7, inlinedAt: !20) 292*9880d681SAndroid Build Coastguard Worker!23 = !DILocation(line: 4, column: 5, scope: !7, inlinedAt: !20) 293*9880d681SAndroid Build Coastguard Worker!24 = !DILocation(line: 5, column: 5, scope: !7, inlinedAt: !20) 294*9880d681SAndroid Build Coastguard Worker!25 = !DILocation(line: 6, column: 5, scope: !7, inlinedAt: !20) 295*9880d681SAndroid Build Coastguard Worker!26 = !DILocation(line: 7, column: 1, scope: !7, inlinedAt: !20) 296*9880d681SAndroid Build Coastguard Worker!27 = !DILocation(line: 11, column: 5, scope: !6, inlinedAt: !18) 297*9880d681SAndroid Build Coastguard Worker!28 = !DILocation(line: 16, column: 5, scope: !4) 298*9880d681SAndroid Build Coastguard Worker!29 = !DILocation(line: 17, column: 1, scope: !4) 299