From 5b85d8d67b28f082db53863a922895211a01baa2 Mon Sep 17 00:00:00 2001 From: Mehdi Amini Date: Tue, 3 May 2016 00:27:28 +0000 Subject: 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 llvm-svn: 268341 --- llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll | 5 +++++ llvm/test/Transforms/FunctionImport/funcimport.ll | 5 +++++ 2 files changed, 10 insertions(+) (limited to 'llvm/test/Transforms/FunctionImport') 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.{{.*}}() -- cgit v1.2.3