1; RUN: llc < %s - | FileCheck %s 2; 3; FIXME: A potentially more interesting test case would be: 4; %call = @bar() 5; dbg.value j=0 6; %call2 = @bar() 7; dbg.value j=%call 8; 9; We cannot current handle the above sequence because codegenprepare 10; hoists the second dbg.value above %call2, which then appears to 11; conflict with j=0. It does this because SelectionDAG cannot handle 12; global debug values. 13 14target triple = "x86_64-apple-darwin10.0.0" 15 16;CHECK: ## DW_OP_consts 17;CHECK-NEXT: .byte 42 18define i32 @foobar() nounwind readonly noinline ssp { 19entry: 20 tail call void @llvm.dbg.value(metadata i32 42, i64 0, metadata !6, metadata !MDExpression()), !dbg !9 21 %call = tail call i32 @bar(), !dbg !11 22 tail call void @llvm.dbg.value(metadata i32 %call, i64 0, metadata !6, metadata !MDExpression()), !dbg !11 23 %call2 = tail call i32 @bar(), !dbg !11 24 %add = add nsw i32 %call2, %call, !dbg !12 25 ret i32 %add, !dbg !10 26} 27 28declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnone 29declare i32 @bar() nounwind readnone 30 31!llvm.dbg.cu = !{!2} 32!llvm.module.flags = !{!17} 33 34!0 = !MDSubprogram(name: "foobar", linkageName: "foobar", line: 12, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, file: !15, scope: !1, type: !3, function: i32 ()* @foobar, variables: !14) 35!1 = !MDFile(filename: "mu.c", directory: "/private/tmp") 36!2 = !MDCompileUnit(language: DW_LANG_C99, producer: "clang version 2.9 (trunk 114183)", isOptimized: true, emissionKind: 1, file: !15, enums: !16, retainedTypes: !16, subprograms: !13, imports: null) 37!3 = !MDSubroutineType(types: !4) 38!4 = !{!5} 39!5 = !MDBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) 40!6 = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "j", line: 15, scope: !7, file: !1, type: !5) 41!7 = distinct !MDLexicalBlock(line: 12, column: 52, file: !15, scope: !0) 42!8 = !{i32 42} 43!9 = !MDLocation(line: 15, column: 12, scope: !7) 44!10 = !MDLocation(line: 23, column: 3, scope: !7) 45!11 = !MDLocation(line: 17, column: 3, scope: !7) 46!12 = !MDLocation(line: 18, column: 3, scope: !7) 47!13 = !{!0} 48!14 = !{!6} 49!15 = !MDFile(filename: "mu.c", directory: "/private/tmp") 50!16 = !{} 51!17 = !{i32 1, !"Debug Info Version", i32 3} 52