summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorTeresa Johnson <tejohnson@google.com>2018-06-27 18:03:39 +0000
committerTeresa Johnson <tejohnson@google.com>2018-06-27 18:03:39 +0000
commit7e7b13d016f6f216c83dde5b925a937ef4cf3072 (patch)
tree0a7e38c7972289da6cec4d886f01a557482dcdef /llvm/test
parent2b1327b9fffc811f36c2386cfcad5545bcb6fbba (diff)
downloadbcm5719-llvm-7e7b13d016f6f216c83dde5b925a937ef4cf3072.tar.gz
bcm5719-llvm-7e7b13d016f6f216c83dde5b925a937ef4cf3072.zip
[ThinLTO] Print names in function import debug messages when available
Summary: Rather than just print the GUID, when it is available in the index, print the global name as well in the function import thin link debug messages. Names will be available when the combined index is being built by the same process, e.g. a linker or "llvm-lto2 run". Reviewers: davidxl Subscribers: mehdi_amini, inglorion, eraman, steven_wu, llvm-commits Differential Revision: https://reviews.llvm.org/D48612 llvm-svn: 335760
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/ThinLTO/X86/Inputs/funcimport-debug.ll10
-rw-r--r--llvm/test/ThinLTO/X86/deadstrip.ll14
-rw-r--r--llvm/test/ThinLTO/X86/funcimport-debug.ll35
3 files changed, 58 insertions, 1 deletions
diff --git a/llvm/test/ThinLTO/X86/Inputs/funcimport-debug.ll b/llvm/test/ThinLTO/X86/Inputs/funcimport-debug.ll
new file mode 100644
index 00000000000..b204afe3d4d
--- /dev/null
+++ b/llvm/test/ThinLTO/X86/Inputs/funcimport-debug.ll
@@ -0,0 +1,10 @@
+target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-apple-macosx10.11.0"
+
+
+define void @foo() #0 {
+entry:
+ ret void
+}
+
+@baz = constant i32 10, align 4
diff --git a/llvm/test/ThinLTO/X86/deadstrip.ll b/llvm/test/ThinLTO/X86/deadstrip.ll
index 827ad225eda..2860d528414 100644
--- a/llvm/test/ThinLTO/X86/deadstrip.ll
+++ b/llvm/test/ThinLTO/X86/deadstrip.ll
@@ -1,3 +1,6 @@
+; Require asserts for -debug-only
+; REQUIRES: asserts
+
; RUN: opt -module-summary %s -o %t1.bc
; RUN: opt -module-summary %p/Inputs/deadstrip.ll -o %t2.bc
; RUN: llvm-lto -thinlto-action=thinlink -o %t.index.bc %t1.bc %t2.bc
@@ -18,7 +21,9 @@
; RUN: -r %t2.bc,_baz,pl \
; RUN: -r %t2.bc,_boo,pl \
; RUN: -r %t2.bc,_dead_func,l \
-; RUN: -r %t2.bc,_another_dead_func,pl
+; RUN: -r %t2.bc,_another_dead_func,pl \
+; RUN: -thinlto-threads=1 \
+; RUN: -debug-only=function-import 2>&1 | FileCheck %s --check-prefix=DEBUG
; RUN: llvm-dis < %t.out.1.3.import.bc | FileCheck %s --check-prefix=LTO2
; RUN: llvm-dis < %t.out.2.3.import.bc | FileCheck %s --check-prefix=LTO2-CHECK2
; RUN: llvm-nm %t.out.1 | FileCheck %s --check-prefix=CHECK2-NM
@@ -71,6 +76,13 @@
; CHECK-NM-NOT: bar
; CHECK-NM-NOT: dead
+; DEBUG: Live root: 2412314959268824392 (llvm.global_ctors)
+; DEBUG: Live root: 15822663052811949562 (main)
+; DEBUG: Ignores Dead GUID: 7342339837106705152 (dead_func)
+; DEBUG: Ignores Dead GUID: 7546896869197086323 (baz)
+; DEBUG: Initialize import for 15611644523426561710 (boo)
+; DEBUG: Ignores Dead GUID: 2384416018110111308 (another_dead_func)
+
; Next test the case where Inputs/deadstrip.ll does not get a module index,
; which will cause it to be handled by regular LTO in the new LTO API.
; In that case there are uses of @dead_func in the regular LTO partition
diff --git a/llvm/test/ThinLTO/X86/funcimport-debug.ll b/llvm/test/ThinLTO/X86/funcimport-debug.ll
new file mode 100644
index 00000000000..ca6128a51a9
--- /dev/null
+++ b/llvm/test/ThinLTO/X86/funcimport-debug.ll
@@ -0,0 +1,35 @@
+; Test of function importing debug messages
+
+; Require asserts for -debug-only
+; REQUIRES: asserts
+
+; Do setup work for all below tests: generate bitcode and combined index
+; RUN: opt -module-summary %s -o %t1.bc
+; RUN: opt -module-summary %p/Inputs/funcimport-debug.ll -o %t2.bc
+
+; RUN: llvm-lto2 run %t1.bc %t2.bc -o %t.o -save-temps \
+; RUN: -r=%t1.bc,_main,plx \
+; RUN: -r=%t1.bc,_foo,l \
+; RUN: -r=%t1.bc,_baz,l \
+; RUN: -r=%t2.bc,_foo,plx \
+; RUN: -r=%t2.bc,_baz,plx \
+; RUN: -thinlto-threads=1 \
+; RUN: -debug-only=function-import 2>&1 | FileCheck %s
+
+; CHECK-DAG: Initialize import for 6699318081062747564 (foo)
+; CHECK-DAG: Initialize import for 15822663052811949562 (main)
+; CHECK-DAG: ref -> 7546896869197086323 (baz)
+; CHECK-DAG: edge -> 6699318081062747564 (foo) Threshold:100
+
+target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-apple-macosx10.11.0"
+
+define i32 @main() #0 {
+entry:
+ call void (...) @foo()
+ %0 = load i32, i32* @baz, align 4
+ ret i32 %0
+}
+
+declare void @foo(...) #1
+@baz = external global i32
OpenPOWER on IntegriCloud