summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
authorMehdi Amini <mehdi.amini@apple.com>2016-05-02 22:11:27 +0000
committerMehdi Amini <mehdi.amini@apple.com>2016-05-02 22:11:27 +0000
commitbda9b2ae9e69e5de7ce76e70c9cd6519d90a0226 (patch)
treed70fbc04e3bbafde54b3b958c73fc59dd3a2842c /llvm/test/Transforms
parent3ba6535096a4a1abd57f7813183ac8fa0bccfc39 (diff)
downloadbcm5719-llvm-bda9b2ae9e69e5de7ce76e70c9cd6519d90a0226.tar.gz
bcm5719-llvm-bda9b2ae9e69e5de7ce76e70c9cd6519d90a0226.zip
ThinLTO: do not import function whose linkage prevents inlining.
There is not point in importing a "weak" or a "linkonce" function since we won't be able to inline it anyway. We already had a targeted check for WeakAny, this is using the same check on GlobalValue as the inline, i.e. isMayBeOverriddenLinkage() From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268315
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r--llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll5
-rw-r--r--llvm/test/Transforms/FunctionImport/funcimport.ll5
2 files changed, 10 insertions, 0 deletions
diff --git a/llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll b/llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll
index 03ea3647fd7..fa96b8ea266 100644
--- a/llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll
+++ b/llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll
@@ -75,6 +75,11 @@ entry:
ret void
}
+define linkonce void @linkoncefunc2() #0 {
+entry:
+ ret void
+}
+
define internal i32 @staticfunc() #0 {
entry:
ret i32 1
diff --git a/llvm/test/Transforms/FunctionImport/funcimport.ll b/llvm/test/Transforms/FunctionImport/funcimport.ll
index f0df3200555..478613a2475 100644
--- a/llvm/test/Transforms/FunctionImport/funcimport.ll
+++ b/llvm/test/Transforms/FunctionImport/funcimport.ll
@@ -28,6 +28,7 @@ entry:
call void (...) @setfuncptr()
call void (...) @callfuncptr()
call void (...) @weakfunc()
+ call void (...) @linkoncefunc2()
call void (...) @referencelargelinkonce()
ret i32 0
}
@@ -94,6 +95,10 @@ declare void @referencelargelinkonce(...)
; CHECK-DAG: declare void @weakfunc(...)
declare void @weakfunc(...) #1
+; Won't import linkonce func
+; CHECK-DAG: declare void @linkoncefunc2(...)
+declare void @linkoncefunc2(...) #1
+
; INSTLIMDEF-DAG: Import funcwithpersonality
; INSTLIMDEF-DAG: define available_externally hidden void @funcwithpersonality.llvm.{{.*}}() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
; INSTLIM5-DAG: declare hidden void @funcwithpersonality.llvm.{{.*}}()
OpenPOWER on IntegriCloud