From 332b3b22109e9c0d84456888150c0a30f378f984 Mon Sep 17 00:00:00 2001 From: Piotr Padlewski Date: Thu, 11 Aug 2016 22:13:57 +0000 Subject: Don't import variadic functions Summary: This patch adds IsVariadicFunction bit to summary in order to not import variadic functions. Inliner doesn't inline variadic functions because it is hard to reason about it. This one small fix improves Importer by about 16% (going from 86% to 100% of imported functions that are inlined anywhere) on some spec benchmarks like 'int' and others. Reviewers: eraman, mehdi_amini, tejohnson Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D23339 llvm-svn: 278432 --- llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll') diff --git a/llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll b/llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll index fa96b8ea266..c4ef37a168f 100644 --- a/llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll +++ b/llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll @@ -11,6 +11,7 @@ define void @globalfunc1() #0 { entry: call void @funcwithpersonality() + call void (...) @variadic() ret void } @@ -146,4 +147,8 @@ entry: ret void } +; Variadic function should not be imported because inliner doesn't handle it. +define void @variadic(...) { + ret void +} -- cgit v1.2.3