DebugInfo: don't use location lists when the location covers the whole function anyway
[oota-llvm.git] / test / CodeGen / X86 / dbg-merge-loc-entry.ll
1 ; RUN: llc < %s -o %t -filetype=obj
2 ; RUN: llvm-dwarfdump -debug-dump=info %t | FileCheck %s
3 ; RUN: llc < %s -o %t -filetype=obj -regalloc=basic
4 ; RUN: llvm-dwarfdump -debug-dump=info %t | FileCheck %s
5
6 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
7 target triple = "x86_64-apple-darwin8"
8
9 ;CHECK: DW_AT_location{{.*}}(<0x01> 55 )
10
11 %0 = type { i64, i1 }
12
13 @__clz_tab = external constant [256 x i8]
14
15 define hidden i128 @__divti3(i128 %u, i128 %v) nounwind readnone {
16 entry:
17   tail call void @llvm.dbg.value(metadata !{i128 %u}, i64 0, metadata !14), !dbg !15
18   tail call void @llvm.dbg.value(metadata !16, i64 0, metadata !17), !dbg !21
19   br i1 undef, label %bb2, label %bb4, !dbg !22
20
21 bb2:                                              ; preds = %entry
22   br label %bb4, !dbg !23
23
24 bb4:                                              ; preds = %bb2, %entry
25   br i1 undef, label %__udivmodti4.exit, label %bb82.i, !dbg !24
26
27 bb82.i:                                           ; preds = %bb4
28   unreachable
29
30 __udivmodti4.exit:                                ; preds = %bb4
31   ret i128 undef, !dbg !27
32 }
33
34 declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
35
36 declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
37
38 declare %0 @llvm.uadd.with.overflow.i64(i64, i64) nounwind readnone
39
40 !llvm.dbg.cu = !{!2}
41
42 !0 = metadata !{i32 786478, metadata !1, metadata !"__udivmodti4", metadata !"__udivmodti4", metadata !"", metadata !1, i32 879, metadata !3, i1 true, i1 true, i32 0, i32 0, null, i32 256, i1 true, null, null, null, null, i32 879} ; [ DW_TAG_subprogram ]
43 !1 = metadata !{i32 786473, metadata !29} ; [ DW_TAG_file_type ]
44 !2 = metadata !{i32 786449, i32 1, metadata !1, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, metadata !"", i32 0, null, null, metadata !28, null,  null, metadata !""} ; [ DW_TAG_compile_unit ]
45 !3 = metadata !{i32 786453, metadata !29, metadata !1, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !4, i32 0, null} ; [ DW_TAG_subroutine_type ]
46 !4 = metadata !{metadata !5, metadata !5, metadata !5, metadata !8}
47 !5 = metadata !{i32 786454, metadata !30, metadata !6, metadata !"UTItype", i32 166, i64 0, i64 0, i64 0, i32 0, metadata !7} ; [ DW_TAG_typedef ]
48 !6 = metadata !{i32 786473, metadata !30} ; [ DW_TAG_file_type ]
49 !7 = metadata !{i32 786468, metadata !29, metadata !1, metadata !"", i32 0, i64 128, i64 128, i64 0, i32 0, i32 7} ; [ DW_TAG_base_type ]
50 !8 = metadata !{i32 786447, metadata !29, metadata !1, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !5} ; [ DW_TAG_pointer_type ]
51 !9 = metadata !{i32 786478, metadata !1, metadata !"__divti3", metadata !"__divti3", metadata !"__divti3", metadata !1, i32 1094, metadata !10, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i128 (i128, i128)* @__divti3, null, null, null, i32 1094} ; [ DW_TAG_subprogram ]
52 !10 = metadata !{i32 786453, metadata !29, metadata !1, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !11, i32 0, null} ; [ DW_TAG_subroutine_type ]
53 !11 = metadata !{metadata !12, metadata !12, metadata !12}
54 !12 = metadata !{i32 786454, metadata !30, metadata !6, metadata !"TItype", i32 160, i64 0, i64 0, i64 0, i32 0, metadata !13} ; [ DW_TAG_typedef ]
55 !13 = metadata !{i32 786468, metadata !29, metadata !1, metadata !"", i32 0, i64 128, i64 128, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
56 !14 = metadata !{i32 786689, metadata !9, metadata !"u", metadata !1, i32 1093, metadata !12, i32 0, null} ; [ DW_TAG_arg_variable ]
57 !15 = metadata !{i32 1093, i32 0, metadata !9, null}
58 !16 = metadata !{i64 0}
59 !17 = metadata !{i32 786688, metadata !18, metadata !"c", metadata !1, i32 1095, metadata !19, i32 0, null} ; [ DW_TAG_auto_variable ]
60 !18 = metadata !{i32 786443, metadata !1, metadata !9, i32 1094, i32 0, i32 13} ; [ DW_TAG_lexical_block ]
61 !19 = metadata !{i32 786454, metadata !30, metadata !6, metadata !"word_type", i32 424, i64 0, i64 0, i64 0, i32 0, metadata !20} ; [ DW_TAG_typedef ]
62 !20 = metadata !{i32 786468, metadata !29, metadata !1, metadata !"long int", i32 0, i64 64, i64 64, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
63 !21 = metadata !{i32 1095, i32 0, metadata !18, null}
64 !22 = metadata !{i32 1103, i32 0, metadata !18, null}
65 !23 = metadata !{i32 1104, i32 0, metadata !18, null}
66 !24 = metadata !{i32 1003, i32 0, metadata !25, metadata !26}
67 !25 = metadata !{i32 786443, metadata !1, metadata !0, i32 879, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
68 !26 = metadata !{i32 1107, i32 0, metadata !18, null}
69 !27 = metadata !{i32 1111, i32 0, metadata !18, null}
70 !28 = metadata !{metadata !0, metadata !9}
71 !29 = metadata !{metadata !"foobar.c", metadata !"/tmp"}
72 !30 = metadata !{metadata !"foobar.h", metadata !"/tmp"}