Don't import variadic functions
authorPiotr Padlewski <piotr.padlewski@gmail.com>
Thu, 11 Aug 2016 22:13:57 +0000 (22:13 +0000)
committerPiotr Padlewski <piotr.padlewski@gmail.com>
Thu, 11 Aug 2016 22:13:57 +0000 (22:13 +0000)
commit332b3b22109e9c0d84456888150c0a30f378f984
tree777b39aba73791c52ead7d1c4a2e785441b0c86c
parent6daefcf6262299a4233231c49b9048c1062dbc90
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/include/llvm/IR/ModuleSummaryIndex.h
llvm/lib/Bitcode/Reader/BitcodeReader.cpp
llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
llvm/lib/Transforms/IPO/FunctionImport.cpp
llvm/test/Bitcode/thinlto-function-summary.ll
llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll
llvm/test/Transforms/FunctionImport/funcimport.ll