From: Teresa Johnson Date: Fri, 24 Mar 2017 17:59:06 +0000 (+0000) Subject: [ThinLTO] Correct counting of functions in inliner stats X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cf5d3caaabb3bb7a9bd822c464c5a0c9a573f317;p=llvm [ThinLTO] Correct counting of functions in inliner stats Summary: Declarations need to be filtered out when counting functions. Reviewers: eraman Subscribers: Prazek, llvm-commits Differential Revision: https://reviews.llvm.org/D31336 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298720 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp b/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp index ed018bb7310..b8c12ad5ea8 100644 --- a/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp +++ b/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp @@ -62,6 +62,8 @@ void ImportedFunctionsInliningStatistics::recordInline(const Function &Caller, void ImportedFunctionsInliningStatistics::setModuleInfo(const Module &M) { ModuleName = M.getName(); for (const auto &F : M.functions()) { + if (F.isDeclaration()) + continue; AllFunctions++; ImportedFunctions += int(F.getMetadata("thinlto_src_module") != nullptr); } diff --git a/test/Transforms/Inline/inline_stats.ll b/test/Transforms/Inline/inline_stats.ll index cf0d43e9215..bc005b6afd5 100644 --- a/test/Transforms/Inline/inline_stats.ll +++ b/test/Transforms/Inline/inline_stats.ll @@ -36,9 +36,12 @@ define void @internal3() { ret void } +declare void @external_decl() + define void @external1() alwaysinline !thinlto_src_module !0 { call fastcc void @internal2() call fastcc void @external2(); + call void @external_decl(); ret void }