summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorOleg Ranevskyy <oranevskyy@accesssoftek.com>2015-11-05 17:50:17 +0000
committerOleg Ranevskyy <oranevskyy@accesssoftek.com>2015-11-05 17:50:17 +0000
commit057c5a6b2b082b62c8f33a8d6d6e942b8165757a (patch)
tree35fe0e16293ab2eca1c690571369fea7db07aa83 /llvm/test
parent99fba3c1416447737bdc76c751ed8775d4abb106 (diff)
downloadbcm5719-llvm-057c5a6b2b082b62c8f33a8d6d6e942b8165757a.tar.gz
bcm5719-llvm-057c5a6b2b082b62c8f33a8d6d6e942b8165757a.zip
[DebugInfo] Fix ARM/AArch64 prologue_end position. Related to D11268.
Summary: This review is related to another review request http://reviews.llvm.org/D11268, does the same and merely fixes a couple of issues with it. D11268 is quite old and has merge conflicts against the current trunk. This request - rebases D11268 onto the new trunk; - resolves the merge conflicts; - fixes the prologue_end tests, which do not pass due to the subprogram definitions not marked as distinct. Reviewers: echristo, rengolin, kubabrecka Subscribers: aemerson, rengolin, jyknight, dsanders, llvm-commits, asl Differential Revision: http://reviews.llvm.org/D14338 llvm-svn: 252177
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/DebugInfo/AArch64/prologue_end.ll43
-rw-r--r--llvm/test/DebugInfo/ARM/prologue_end.ll46
-rw-r--r--llvm/test/DebugInfo/Sparc/prologue_end.ll41
-rw-r--r--llvm/test/DebugInfo/SystemZ/prologue_end.ll42
4 files changed, 172 insertions, 0 deletions
diff --git a/llvm/test/DebugInfo/AArch64/prologue_end.ll b/llvm/test/DebugInfo/AArch64/prologue_end.ll
new file mode 100644
index 00000000000..4887fb06099
--- /dev/null
+++ b/llvm/test/DebugInfo/AArch64/prologue_end.ll
@@ -0,0 +1,43 @@
+; RUN: llc -disable-fp-elim -O0 %s -mtriple aarch64-apple-darwin -o - | FileCheck %s
+
+; int func(void);
+; void prologue_end_test() {
+; func();
+; func();
+; }
+
+define void @prologue_end_test() nounwind uwtable {
+ ; CHECK: prologue_end_test:
+ ; CHECK: .cfi_startproc
+ ; CHECK: stp x29, x30
+ ; CHECK: mov x29, sp
+ ; CHECK: sub sp, sp
+ ; CHECK: .loc 1 3 3 prologue_end
+ ; CHECK: bl _func
+ ; CHECK: bl _func
+entry:
+ %call = call i32 @func(), !dbg !11
+ %call1 = call i32 @func(), !dbg !12
+ ret void, !dbg !13
+}
+
+declare i32 @func()
+
+!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!7, !8, !9}
+!llvm.ident = !{!10}
+
+!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0 (trunk 242129)", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !2, subprograms: !3)
+!1 = !DIFile(filename: "foo.c", directory: "/tmp")
+!2 = !{}
+!3 = !{!4}
+!4 = distinct !DISubprogram(name: "prologue_end_test", scope: !1, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true, scopeLine: 2, isOptimized: false, function: void ()* @prologue_end_test, variables: !2)
+!5 = !DISubroutineType(types: !6)
+!6 = !{null}
+!7 = !{i32 2, !"Dwarf Version", i32 2}
+!8 = !{i32 2, !"Debug Info Version", i32 3}
+!9 = !{i32 1, !"PIC Level", i32 2}
+!10 = !{!"clang version 3.7.0 (trunk 242129)"}
+!11 = !DILocation(line: 3, column: 3, scope: !4)
+!12 = !DILocation(line: 4, column: 3, scope: !4)
+!13 = !DILocation(line: 5, column: 1, scope: !4)
diff --git a/llvm/test/DebugInfo/ARM/prologue_end.ll b/llvm/test/DebugInfo/ARM/prologue_end.ll
new file mode 100644
index 00000000000..16a594b13c7
--- /dev/null
+++ b/llvm/test/DebugInfo/ARM/prologue_end.ll
@@ -0,0 +1,46 @@
+; RUN: llc -disable-fp-elim -O0 %s -mtriple armv7-apple-darwin -o - | FileCheck %s
+; RUN: llc -disable-fp-elim -O0 %s -mtriple thumbv1-apple-darwin -o - | FileCheck %s
+
+; int func(void);
+; void prologue_end_test() {
+; func();
+; func();
+; }
+
+define void @prologue_end_test() nounwind uwtable {
+ ; CHECK: prologue_end_test:
+ ; CHECK: .cfi_startproc
+ ; CHECK: push {r7, lr}
+ ; CHECK: {{mov r7, sp|add r7, sp}}
+ ; CHECK: sub sp
+ ; CHECK: .loc 1 3 3 prologue_end
+ ; CHECK: bl {{_func|Ltmp}}
+ ; CHECK: bl {{_func|Ltmp}}
+entry:
+ %call = call i32 @func(), !dbg !13
+ %call1 = call i32 @func(), !dbg !14
+ ret void, !dbg !15
+}
+
+declare i32 @func()
+
+!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!7, !8, !9, !10, !11}
+!llvm.ident = !{!12}
+
+!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0 (trunk 242129)", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !2, subprograms: !3)
+!1 = !DIFile(filename: "foo.c", directory: "/tmp")
+!2 = !{}
+!3 = !{!4}
+!4 = distinct !DISubprogram(name: "prologue_end_test", scope: !1, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true, scopeLine: 2, isOptimized: false, function: void ()* @prologue_end_test, variables: !2)
+!5 = !DISubroutineType(types: !6)
+!6 = !{null}
+!7 = !{i32 2, !"Dwarf Version", i32 2}
+!8 = !{i32 2, !"Debug Info Version", i32 3}
+!9 = !{i32 1, !"wchar_size", i32 4}
+!10 = !{i32 1, !"min_enum_size", i32 4}
+!11 = !{i32 1, !"PIC Level", i32 2}
+!12 = !{!"clang version 3.7.0 (trunk 242129)"}
+!13 = !DILocation(line: 3, column: 3, scope: !4)
+!14 = !DILocation(line: 4, column: 3, scope: !4)
+!15 = !DILocation(line: 5, column: 1, scope: !4)
diff --git a/llvm/test/DebugInfo/Sparc/prologue_end.ll b/llvm/test/DebugInfo/Sparc/prologue_end.ll
new file mode 100644
index 00000000000..ce73b366927
--- /dev/null
+++ b/llvm/test/DebugInfo/Sparc/prologue_end.ll
@@ -0,0 +1,41 @@
+; RUN: llc -disable-fp-elim -O0 %s -mtriple sparc -o - | FileCheck %s
+
+; int func(void);
+; void prologue_end_test() {
+; func();
+; func();
+; }
+
+define void @prologue_end_test() nounwind uwtable {
+ ; CHECK: prologue_end_test:
+ ; CHECK: .cfi_startproc
+ ; CHECK: save %sp
+ ; CHECK: .loc 1 3 3 prologue_end
+ ; CHECK: call func
+ ; CHECK: call func
+entry:
+ %call = call i32 @func(), !dbg !11
+ %call1 = call i32 @func(), !dbg !12
+ ret void, !dbg !13
+}
+
+declare i32 @func()
+
+!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!7, !8, !9}
+!llvm.ident = !{!10}
+
+!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0 (trunk 242129)", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !2, subprograms: !3)
+!1 = !DIFile(filename: "foo.c", directory: "/tmp")
+!2 = !{}
+!3 = !{!4}
+!4 = distinct !DISubprogram(name: "prologue_end_test", scope: !1, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true, scopeLine: 2, isOptimized: false, function: void ()* @prologue_end_test, variables: !2)
+!5 = !DISubroutineType(types: !6)
+!6 = !{null}
+!7 = !{i32 2, !"Dwarf Version", i32 2}
+!8 = !{i32 2, !"Debug Info Version", i32 3}
+!9 = !{i32 1, !"PIC Level", i32 2}
+!10 = !{!"clang version 3.7.0 (trunk 242129)"}
+!11 = !DILocation(line: 3, column: 3, scope: !4)
+!12 = !DILocation(line: 4, column: 3, scope: !4)
+!13 = !DILocation(line: 5, column: 1, scope: !4)
diff --git a/llvm/test/DebugInfo/SystemZ/prologue_end.ll b/llvm/test/DebugInfo/SystemZ/prologue_end.ll
new file mode 100644
index 00000000000..cb71dcff55c
--- /dev/null
+++ b/llvm/test/DebugInfo/SystemZ/prologue_end.ll
@@ -0,0 +1,42 @@
+; RUN: llc -disable-fp-elim -O0 %s -mtriple s390x-linux-gnu -o - | FileCheck %s
+
+; int func(void);
+; void prologue_end_test() {
+; func();
+; func();
+; }
+
+define void @prologue_end_test() nounwind uwtable {
+ ; CHECK: prologue_end_test:
+ ; CHECK: .cfi_startproc
+ ; CHECK: aghi
+ ; CHECK: lgr
+ ; CHECK: .loc 1 3 3 prologue_end
+ ; CHECK: brasl {{.*}}, func
+ ; CHECK: brasl {{.*}}, func
+entry:
+ %call = call i32 @func(), !dbg !11
+ %call1 = call i32 @func(), !dbg !12
+ ret void, !dbg !13
+}
+
+declare i32 @func()
+
+!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!7, !8, !9}
+!llvm.ident = !{!10}
+
+!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0 (trunk 242129)", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !2, subprograms: !3)
+!1 = !DIFile(filename: "foo.c", directory: "/tmp")
+!2 = !{}
+!3 = !{!4}
+!4 = distinct !DISubprogram(name: "prologue_end_test", scope: !1, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true, scopeLine: 2, isOptimized: false, function: void ()* @prologue_end_test, variables: !2)
+!5 = !DISubroutineType(types: !6)
+!6 = !{null}
+!7 = !{i32 2, !"Dwarf Version", i32 2}
+!8 = !{i32 2, !"Debug Info Version", i32 3}
+!9 = !{i32 1, !"PIC Level", i32 2}
+!10 = !{!"clang version 3.7.0 (trunk 242129)"}
+!11 = !DILocation(line: 3, column: 3, scope: !4)
+!12 = !DILocation(line: 4, column: 3, scope: !4)
+!13 = !DILocation(line: 5, column: 1, scope: !4)
OpenPOWER on IntegriCloud