summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/DebugInfo/Generic/partial-constant.ll82
-rw-r--r--llvm/test/DebugInfo/Generic/sugared-constants.ll30
-rw-r--r--llvm/test/DebugInfo/MIR/X86/bit-piece-dh.mir10
-rw-r--r--llvm/test/DebugInfo/X86/dbg-merge-loc-entry.ll2
-rw-r--r--llvm/test/DebugInfo/X86/inlined-formal-parameter.ll14
-rw-r--r--llvm/test/DebugInfo/X86/parameters.ll13
-rw-r--r--llvm/test/DebugInfo/X86/pieces-3.ll9
-rw-r--r--llvm/test/DebugInfo/X86/reference-argument.ll10
-rw-r--r--llvm/test/DebugInfo/X86/this-stack_value.ll4
9 files changed, 114 insertions, 60 deletions
diff --git a/llvm/test/DebugInfo/Generic/partial-constant.ll b/llvm/test/DebugInfo/Generic/partial-constant.ll
new file mode 100644
index 00000000000..c3abccbc45c
--- /dev/null
+++ b/llvm/test/DebugInfo/Generic/partial-constant.ll
@@ -0,0 +1,82 @@
+; RUN: %llc_dwarf -filetype=obj < %s | llvm-dwarfdump - | FileCheck %s
+; Generated at -O2 from:
+; bool c();
+; void f();
+; bool start() {
+; bool result = c();
+; if (!c()) {
+; result = false;
+; goto exit;
+; }
+; f();
+; result = true;
+; exit:
+; return result;
+; }
+;
+; The constant should NOT be available for the entire function.
+; CHECK-NOT: DW_AT_const_value
+; CHECK: .debug_loc
+; CHECK: Location description: 10 01 9f
+; constu 0x00000001, stack-value
+source_filename = "test.ii"
+target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-apple-macosx10.12.0"
+
+; Function Attrs: noimplicitfloat noredzone nounwind optsize
+define zeroext i1 @_Z5startv() local_unnamed_addr #0 !dbg !7 {
+entry:
+ %call = tail call zeroext i1 @_Z1cv() #3, !dbg !13
+ %call1 = tail call zeroext i1 @_Z1cv() #3, !dbg !14
+ br i1 %call1, label %if.end, label %exit, !dbg !16
+
+if.end: ; preds = %entry
+ tail call void @_Z1fv() #3, !dbg !17
+ tail call void @llvm.dbg.value(metadata i8 1, i64 0, metadata !12, metadata !18), !dbg !19
+ br label %exit, !dbg !20
+
+exit: ; preds = %entry, %if.end
+ %result.0 = phi i1 [ true, %if.end ], [ false, %entry ]
+ ret i1 %result.0, !dbg !21
+}
+
+; Function Attrs: noimplicitfloat noredzone optsize
+declare zeroext i1 @_Z1cv() local_unnamed_addr #1
+
+; Function Attrs: noimplicitfloat noredzone optsize
+declare void @_Z1fv() local_unnamed_addr #1
+
+; Function Attrs: nounwind readnone speculatable
+declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #2
+
+attributes #0 = { noimplicitfloat noredzone nounwind optsize }
+attributes #1 = { noimplicitfloat noredzone optsize }
+attributes #2 = { nounwind readnone speculatable }
+attributes #3 = { nobuiltin noimplicitfloat noredzone nounwind optsize }
+
+!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!3, !4, !5}
+!llvm.ident = !{!6}
+
+!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 5.0.0 (trunk 303873) (llvm/trunk 303897)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
+!1 = !DIFile(filename: "test.ii", directory: "/")
+!2 = !{}
+!3 = !{i32 2, !"Dwarf Version", i32 4}
+!4 = !{i32 2, !"Debug Info Version", i32 3}
+!5 = !{i32 1, !"wchar_size", i32 4}
+!6 = !{!"clang version 5.0.0 (trunk 303873) (llvm/trunk 303897)"}
+!7 = distinct !DISubprogram(name: "start", linkageName: "_Z5startv", scope: !1, file: !1, line: 3, type: !8, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !11)
+!8 = !DISubroutineType(types: !9)
+!9 = !{!10}
+!10 = !DIBasicType(name: "bool", size: 8, encoding: DW_ATE_boolean)
+!11 = !{!12}
+!12 = !DILocalVariable(name: "result", scope: !7, file: !1, line: 4, type: !10)
+!13 = !DILocation(line: 4, column: 17, scope: !7)
+!14 = !DILocation(line: 5, column: 8, scope: !15)
+!15 = distinct !DILexicalBlock(scope: !7, file: !1, line: 5, column: 7)
+!16 = !DILocation(line: 5, column: 7, scope: !7)
+!17 = !DILocation(line: 9, column: 3, scope: !7)
+!18 = !DIExpression()
+!19 = !DILocation(line: 4, column: 8, scope: !7)
+!20 = !DILocation(line: 10, column: 3, scope: !7)
+!21 = !DILocation(line: 12, column: 3, scope: !7)
diff --git a/llvm/test/DebugInfo/Generic/sugared-constants.ll b/llvm/test/DebugInfo/Generic/sugared-constants.ll
index 2bee2a94032..97d4d60cd0e 100644
--- a/llvm/test/DebugInfo/Generic/sugared-constants.ll
+++ b/llvm/test/DebugInfo/Generic/sugared-constants.ll
@@ -3,47 +3,23 @@
; RUN: %llc_dwarf -O0 -filetype=obj %s -o - | llvm-dwarfdump -debug-dump=info - | FileCheck %s
; Use correct signedness when emitting constants of derived (sugared) types.
-; Test compiled to IR from clang with -O1 and the following source:
-
-; void func(int);
-; void func(unsigned);
-; void func(char16_t);
-; int main() {
-; const int i = 42;
-; func(i);
-; const unsigned j = 117;
-; func(j);
-; char16_t c = 7;
-; func(c);
-; }
-
; CHECK: DW_AT_const_value [DW_FORM_sdata] (42)
; CHECK: DW_AT_const_value [DW_FORM_udata] (117)
; CHECK: DW_AT_const_value [DW_FORM_udata] (7)
; Function Attrs: uwtable
-define i32 @main() #0 !dbg !4 {
+define void @main() #0 !dbg !4 {
entry:
tail call void @llvm.dbg.value(metadata i32 42, i64 0, metadata !10, metadata !DIExpression()), !dbg !21
- tail call void @_Z4funci(i32 42), !dbg !22
tail call void @llvm.dbg.value(metadata i32 117, i64 0, metadata !12, metadata !DIExpression()), !dbg !24
- tail call void @_Z4funcj(i32 117), !dbg !25
tail call void @llvm.dbg.value(metadata i16 7, i64 0, metadata !15, metadata !DIExpression()), !dbg !27
- tail call void @_Z4funcDs(i16 zeroext 7), !dbg !28
- ret i32 0, !dbg !29
+ ret void, !dbg !29
}
-declare void @_Z4funci(i32) #1
-
-declare void @_Z4funcj(i32) #1
-
-declare void @_Z4funcDs(i16 zeroext) #1
-
; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #2
-attributes #0 = { uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
-attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
+attributes #0 = { uwtable }
attributes #2 = { nounwind readnone }
!llvm.dbg.cu = !{!0}
diff --git a/llvm/test/DebugInfo/MIR/X86/bit-piece-dh.mir b/llvm/test/DebugInfo/MIR/X86/bit-piece-dh.mir
index 34a10bd3f65..d4b897eaac9 100644
--- a/llvm/test/DebugInfo/MIR/X86/bit-piece-dh.mir
+++ b/llvm/test/DebugInfo/MIR/X86/bit-piece-dh.mir
@@ -1,13 +1,9 @@
-# RUN: llc -filetype=obj -o - %s | llvm-dwarfdump - | FileCheck %s
+# RUN: llc -filetype=obj -o - %s | llvm-dwarfdump --debug-dump=info - | FileCheck %s
# CHECK: .debug_info contents:
# CHECK: DW_TAG_variable
-# CHECK-NEXT: DW_AT_location [DW_FORM_sec_offset] ([[OFS:.*]])
-# CHECK-NEXT: DW_AT_name {{.*}}"dh"
-# CHECK: .debug_loc contents:
-# CHECK: [[OFS]]: Beginning address offset: 0x0000000000000002
-# CHECK: Ending address offset: 0x000000000000000c
-# CHECK: Location description: 51 9d 08 08
# rdx, bit-piece 8 8
+# CHECK-NEXT: DW_AT_location {{.*}} 51 9d 08 08
+# CHECK-NEXT: DW_AT_name {{.*}}"dh"
--- |
; Manually created after:
; char f(int i) {
diff --git a/llvm/test/DebugInfo/X86/dbg-merge-loc-entry.ll b/llvm/test/DebugInfo/X86/dbg-merge-loc-entry.ll
index 17fd0d54d40..272ee0b6c8e 100644
--- a/llvm/test/DebugInfo/X86/dbg-merge-loc-entry.ll
+++ b/llvm/test/DebugInfo/X86/dbg-merge-loc-entry.ll
@@ -6,6 +6,7 @@
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"
target triple = "x86_64-apple-darwin8"
+; Test that consecutive, identical DBG_VALUEs are merged.
;CHECK: DW_AT_location{{.*}}(<0x1> 55 )
%0 = type { i64, i1 }
@@ -19,6 +20,7 @@ entry:
br i1 undef, label %bb2, label %bb4, !dbg !22
bb2: ; preds = %entry
+ tail call void @llvm.dbg.value(metadata i128 %u, i64 0, metadata !14, metadata !DIExpression()), !dbg !15
br label %bb4, !dbg !23
bb4: ; preds = %bb2, %entry
diff --git a/llvm/test/DebugInfo/X86/inlined-formal-parameter.ll b/llvm/test/DebugInfo/X86/inlined-formal-parameter.ll
index 78dc905f5e4..3b603c954fb 100644
--- a/llvm/test/DebugInfo/X86/inlined-formal-parameter.ll
+++ b/llvm/test/DebugInfo/X86/inlined-formal-parameter.ll
@@ -1,5 +1,5 @@
; RUN: llc -filetype=obj -o %t.o %s
-; RUN: llvm-dwarfdump -debug-dump=info %t.o | FileCheck %s
+; RUN: llvm-dwarfdump %t.o | FileCheck %s
; Testcase generated using 'clang -g -O2 -S -emit-llvm' from the following:
;; void sink(void);
@@ -10,6 +10,7 @@
;; }
; Check that we have formal parameters for 'a' in both inlined subroutines.
+; CHECK: .debug_info
; CHECK: DW_TAG_inlined_subroutine
; CHECK-NEXT: DW_AT_abstract_origin {{.*}} "bar"
; CHECK: DW_TAG_formal_parameter
@@ -18,9 +19,11 @@
; CHECK: DW_TAG_inlined_subroutine
; CHECK-NEXT: DW_AT_abstract_origin {{.*}} "bar"
; CHECK: DW_TAG_formal_parameter
-; CHECK-NEXT: DW_AT_const_value
+; CHECK-NEXT: DW_AT_location [DW_FORM_data4] (0x00000000)
; CHECK-NEXT: DW_AT_abstract_origin {{.*}} "a"
-
+;
+; CHECK: .debug_loc
+; CHECK: Location description: 11 00
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-darwin"
@@ -34,13 +37,12 @@ entry:
ret void, !dbg !24
}
-declare void @sink() #1
+declare void @sink()
; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #2
-attributes #0 = { nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "unsafe-fp-math"="false" "use-soft-float"="false" }
-attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="core2" "unsafe-fp-math"="false" "use-soft-float"="false" }
+attributes #0 = { nounwind ssp uwtable }
attributes #2 = { nounwind readnone }
attributes #3 = { nounwind }
diff --git a/llvm/test/DebugInfo/X86/parameters.ll b/llvm/test/DebugInfo/X86/parameters.ll
index a8494f9e963..26fb82df1f3 100644
--- a/llvm/test/DebugInfo/X86/parameters.ll
+++ b/llvm/test/DebugInfo/X86/parameters.ll
@@ -24,8 +24,9 @@
; CHECK: debug_info contents
; 0x74 is DW_OP_breg4, showing that the parameter is accessed indirectly
-; (with a zero offset) from the register parameter
-; CHECK: DW_AT_location [DW_FORM_data4] ([[F_LOC:0x[0-9]*]])
+; (with a zero offset) from the register parameter.
+; CHECK: DW_AT_location {{.*}} 74 00 06
+
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_name{{.*}} = "f"
;
@@ -34,9 +35,6 @@
; CHECK: DW_AT_name{{.*}} = "g"
;
; CHECK: debug_loc contents
-; CHECK: [[F_LOC]]: Beginning
-; CHECK-NEXT: Ending
-; CHECK-NEXT: Location description: 74 00
; CHECK: [[G_LOC]]: Beginning
; CHECK-NEXT: Ending
; CHECK-NEXT: Location description: 74 00
@@ -77,11 +75,10 @@ if.end: ; preds = %if.then, %entry
ret void, !dbg !32
}
-declare void @_ZN7pr147634sinkEPv(i8*) #2
+declare void @_ZN7pr147634sinkEPv(i8*)
-attributes #0 = { uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
+attributes #0 = { uwtable }
attributes #1 = { nounwind readnone }
-attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!21, !33}
diff --git a/llvm/test/DebugInfo/X86/pieces-3.ll b/llvm/test/DebugInfo/X86/pieces-3.ll
index fd5a8b8617a..0f80f71af68 100644
--- a/llvm/test/DebugInfo/X86/pieces-3.ll
+++ b/llvm/test/DebugInfo/X86/pieces-3.ll
@@ -19,7 +19,9 @@
; CHECK-NEXT: DW_AT_location [DW_FORM_data4] ([[LOC1:.*]])
; CHECK-NEXT: DW_AT_name {{.*}}"outer"
; CHECK: DW_TAG_variable
-; CHECK-NEXT: DW_AT_location [DW_FORM_data4] ([[LOC2:.*]])
+; CHECK-NEXT: DW_AT_location
+; rsi, piece 0x00000004
+; CHECK-SAME: 54 93 04
; CHECK-NEXT: "i1"
;
; CHECK: .debug_loc
@@ -32,10 +34,6 @@
; CHECK: Beginning address offset: 0x0000000000000004
; CHECK-NEXT: Ending address offset: 0x0000000000000008
; CHECK-NEXT: Location description: 55 93 08 93 04 54 93 04
-; CHECK: [[LOC2]]: Beginning address offset: 0x0000000000000004
-; CHECK-NEXT: Ending address offset: 0x0000000000000008
-; rsi, piece 0x00000004
-; CHECK-NEXT: Location description: 54 93 04
;
; ModuleID = '/Volumes/Data/llvm/test/DebugInfo/X86/sroasplit-2.ll'
@@ -48,6 +46,7 @@ define i32 @foo(i64 %outer.coerce0, i64 %outer.coerce1) #0 !dbg !4 {
call void @llvm.dbg.declare(metadata !{null}, metadata !27, metadata !28), !dbg !26
call void @llvm.dbg.value(metadata i64 %outer.coerce1, i64 0, metadata !29, metadata !30), !dbg !26
call void @llvm.dbg.declare(metadata !{null}, metadata !31, metadata !32), !dbg !26
+ ; The 'trunc' generates no extra code, thus i1 is visible throughout its scope.
%outer.sroa.1.8.extract.trunc = trunc i64 %outer.coerce1 to i32, !dbg !33
call void @llvm.dbg.value(metadata i32 %outer.sroa.1.8.extract.trunc, i64 0, metadata !34, metadata !35), !dbg !33
%outer.sroa.1.12.extract.shift = lshr i64 %outer.coerce1, 32, !dbg !33
diff --git a/llvm/test/DebugInfo/X86/reference-argument.ll b/llvm/test/DebugInfo/X86/reference-argument.ll
index 52e9290eacc..4b8caa13b72 100644
--- a/llvm/test/DebugInfo/X86/reference-argument.ll
+++ b/llvm/test/DebugInfo/X86/reference-argument.ll
@@ -1,4 +1,5 @@
-; RUN: llc -mtriple=x86_64-apple-macosx10.9.0 -filetype=obj -O0 < %s | llvm-dwarfdump -debug-dump=all - | FileCheck %s
+; RUN: llc -mtriple=x86_64-apple-macosx10.9.0 -filetype=obj -O0 < %s \
+; RUN: | llvm-dwarfdump -debug-dump=info - | FileCheck %s
; ModuleID = 'aggregate-indirect-arg.cpp'
; extracted from debuginfo-tests/aggregate-indirect-arg.cpp
@@ -11,11 +12,10 @@
; CHECK: DW_AT_name {{.*}} "this"
; CHECK-NOT: DW_TAG_subprogram
; CHECK: DW_TAG_formal_parameter
-; CHECK-NEXT: DW_AT_location [DW_FORM_data4] (0x00000000)
-; CHECK-NEXT: DW_AT_name {{.*}} "v"
-; CHECK: .debug_loc contents:
+; CHECK-NEXT: DW_AT_location
; rsi+0
-; CHECK: Location description: 74 00
+; CHECK-SAME: 74 00
+; CHECK-NEXT: DW_AT_name {{.*}} "v"
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-S128"
target triple = "x86_64-apple-macosx10.9.0"
diff --git a/llvm/test/DebugInfo/X86/this-stack_value.ll b/llvm/test/DebugInfo/X86/this-stack_value.ll
index c292b67543d..6ea96c2538c 100644
--- a/llvm/test/DebugInfo/X86/this-stack_value.ll
+++ b/llvm/test/DebugInfo/X86/this-stack_value.ll
@@ -1,5 +1,5 @@
; RUN: llc -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM
-; RUN: llc -filetype=obj -o - %s | llvm-dwarfdump - | FileCheck %s
+; RUN: llc -filetype=obj -o - %s | llvm-dwarfdump --debug-dump=info - | FileCheck %s
;
; Generated at -O2 from:
; struct B;
@@ -18,7 +18,7 @@
; modified by the debugger.
;
; ASM: [DW_OP_stack_value]
-; CHECK: Location description: 70 00 9f
+; CHECK: DW_AT_location {{.*}} 70 00 9f
; rax+0, stack-value
source_filename = "ab.cpp"
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
OpenPOWER on IntegriCloud