DI: Reverse direction of subprogram -> function edge.
[oota-llvm.git] / test / CodeGen / X86 / push-cfi-debug.ll
1 ; RUN: llc < %s -mtriple=i686-pc-linux | FileCheck %s
2
3
4 ; Function Attrs: optsize
5 declare void @foo(i32, i32) #0
6 declare x86_stdcallcc void @stdfoo(i32, i32) #0
7
8 ; CHECK-LABEL: test1:
9 ; CHECK: subl $8, %esp
10 ; CHECK: .cfi_adjust_cfa_offset 8
11 ; CHECK: pushl $2
12 ; CHECK: .cfi_adjust_cfa_offset 4
13 ; CHECK: pushl $1
14 ; CHECK: .cfi_adjust_cfa_offset 4
15 ; CHECK: calll foo
16 ; CHECK: addl $16, %esp
17 ; CHECK: .cfi_adjust_cfa_offset -16
18 ; CHECK: subl $8, %esp
19 ; CHECK: .cfi_adjust_cfa_offset 8
20 ; CHECK: pushl $4
21 ; CHECK: .cfi_adjust_cfa_offset 4
22 ; CHECK: pushl $3
23 ; CHECK: .cfi_adjust_cfa_offset 4
24 ; CHECK: calll stdfoo
25 ; CHECK: .cfi_adjust_cfa_offset -8
26 ; CHECK: addl $8, %esp
27 ; CHECK: .cfi_adjust_cfa_offset -8
28 define void @test1() #0 !dbg !4 {
29 entry:
30   tail call void @foo(i32 1, i32 2) #1, !dbg !10
31   tail call x86_stdcallcc void @stdfoo(i32 3, i32 4) #1, !dbg !11
32   ret void, !dbg !12
33 }
34
35 attributes #0 = { nounwind optsize }
36
37 !llvm.dbg.cu = !{!0}
38 !llvm.module.flags = !{!7, !8}
39 !llvm.ident = !{!9}
40
41 !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.8.0 (trunk 250289)", isOptimized: true, runtimeVersion: 0, emissionKind: 1, enums: !2, subprograms: !3)
42 !1 = !DIFile(filename: "foo.c", directory: "foo")
43 !2 = !{}
44 !3 = !{!4}
45 !4 = distinct !DISubprogram(name: "test1", scope: !1, file: !1, line: 3, type: !5, isLocal: false, isDefinition: true, scopeLine: 3, isOptimized: true, variables: !2)
46 !5 = !DISubroutineType(types: !6)
47 !6 = !{null}
48 !7 = !{i32 2, !"Dwarf Version", i32 4}
49 !8 = !{i32 2, !"Debug Info Version", i32 3}
50 !9 = !{!"clang version 3.8.0 (trunk 250289)"}
51 !10 = !DILocation(line: 4, column: 3, scope: !4)
52 !11 = !DILocation(line: 5, column: 3, scope: !4)
53 !12 = !DILocation(line: 6, column: 1, scope: !4)