Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(524)

Unified Diff: test/Transforms/NaCl/replace-ptrs-with-ints.ll

Issue 809483003: Update ReplacePtrsWithInts to also fix up refs from subprogram debug metadata. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-llvm.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/Transforms/NaCl/ReplacePtrsWithInts.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/Transforms/NaCl/replace-ptrs-with-ints.ll
diff --git a/test/Transforms/NaCl/replace-ptrs-with-ints.ll b/test/Transforms/NaCl/replace-ptrs-with-ints.ll
index 47bfaaa1a4f9019e90b611af0b9aa1fb51602916..11e44e47c5692d4320f17944172eae6ff3c0b3fe 100644
--- a/test/Transforms/NaCl/replace-ptrs-with-ints.ll
+++ b/test/Transforms/NaCl/replace-ptrs-with-ints.ll
@@ -1,8 +1,5 @@
; RUN: opt %s -replace-ptrs-with-ints -S | FileCheck %s
-!llvm.module.flags = !{!0}
-!0 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
-
target datalayout = "p:32:32:32"
@@ -499,9 +496,9 @@ define void @debug_declare(i32 %val) {
}
; CHECK: define void @debug_declare(i32 %val) {
; CHECK-NEXT: %var = alloca i8, i32 4
-; CHECK-NEXT: call void @llvm.dbg.declare(metadata !{i8* %var}, metadata !1)
+; CHECK-NEXT: call void @llvm.dbg.declare(metadata !{i8* %var}, metadata !2)
; This case is currently not converted.
-; CHECK-NEXT: call void @llvm.dbg.declare(metadata !{null}, metadata !1)
+; CHECK-NEXT: call void @llvm.dbg.declare(metadata !{null}, metadata !2)
; CHECK-NEXT: ret void
; For now, debugging info for values is lost. replaceAllUsesWith()
@@ -513,8 +510,8 @@ define void @debug_value(i32 %val, i8* %ptr) {
ret void
}
; CHECK: define void @debug_value(i32 %val, i32 %ptr) {
-; CHECK-NEXT: call void @llvm.dbg.value(metadata !{null}, i64 1, metadata !1)
-; CHECK-NEXT: call void @llvm.dbg.value(metadata !{null}, i64 2, metadata !1)
+; CHECK-NEXT: call void @llvm.dbg.value(metadata !{null}, i64 1, metadata !2)
+; CHECK-NEXT: call void @llvm.dbg.value(metadata !{null}, i64 2, metadata !2)
; CHECK-NEXT: ret void
@@ -679,4 +676,43 @@ define void @typeid_for() {
; CHECK-NEXT: call i32 @llvm.eh.typeid.for(i8* %typeid.bc)
+; Subprogram debug metadata may refer to a function.
+; Make sure those are updated too.
+; Regenerate the debug info from the following C program:
+; void nop(void *ptr) {
+; }
+
+define void @nop(i8* %ptr) {
+ tail call void @llvm.dbg.value(metadata !{i8* %ptr}, i64 0, metadata !10), !dbg !14
+ ret void, !dbg !15
+}
+
Mark Seaborn 2014/12/15 23:43:27 Nit: remove empty line for consistency with other
jvoung (off chromium) 2014/12/16 01:09:09 Done.
+; CHECK: define void @nop(i32 %ptr) {
+; CHECK-NEXT: call void @llvm.dbg.value{{.*}}
+; CHECK-NEXT: ret void
+
+
; CHECK: attributes {{.*}}[[NOUNWIND]] = { nounwind }
+
+!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!11, !12}
+!llvm.ident = !{!13}
+
+!0 = metadata !{i32 786449, metadata !1, i32 12, metadata !"clang version 3.5.0", i1 true, metadata !"", i32 0, metadata !2, metadata !2, metadata !3, metadata !2, metadata !2, metadata !"", i32 1} ; [ DW_TAG_compile_unit ] [/home/foo/test_min.c] [DW_LANG_C99]
+!1 = metadata !{metadata !"test_min.c", metadata !"/home/foo"}
+!2 = metadata !{}
+!3 = metadata !{metadata !4}
+!4 = metadata !{i32 786478, metadata !1, metadata !5, metadata !"nop", metadata !"nop", metadata !"", i32 1, metadata !6, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, void (i8*)* @nop, null, null, metadata !9, i32 1} ; [ DW_TAG_subprogram ] [line 1] [def] [nop]
+!5 = metadata !{i32 786473, metadata !1} ; [ DW_TAG_file_type ] [/home/foo/test_min.c]
+!6 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !7, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
+!7 = metadata !{null, metadata !8}
+!8 = metadata !{i32 786447, null, null, metadata !"", i32 0, i64 32, i64 32, i64 0, i32 0, null} ; [ DW_TAG_pointer_type ] [line 0, size 32, align 32, offset 0] [from ]
+!9 = metadata !{metadata !10}
+!10 = metadata !{i32 786689, metadata !4, metadata !"ptr", metadata !5, i32 16777217, metadata !8, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [ptr] [line 1]
+!11 = metadata !{i32 2, metadata !"Dwarf Version", i32 4}
+!12 = metadata !{i32 2, metadata !"Debug Info Version", i32 1}
+!13 = metadata !{metadata !"clang version 3.5.0"}
+!14 = metadata !{i32 1, i32 16, metadata !4, null}
+!15 = metadata !{i32 2, i32 1, metadata !4, null}
+
+; CHECK: !4 = metadata !{{{.*}}nop{{.*}}, void (i32)* @nop, {{.*}}} ; [ DW_TAG_subprogram ] [line 1] [def] [nop]
« no previous file with comments | « lib/Transforms/NaCl/ReplacePtrsWithInts.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698