diff options
author | Xinliang David Li <davidxl@google.com> | 2017-05-02 18:43:21 +0000 |
---|---|---|
committer | Xinliang David Li <davidxl@google.com> | 2017-05-02 18:43:21 +0000 |
commit | ab8722f80a23169c2e45dfa129216979a6fb54f8 (patch) | |
tree | 8ff16506c730b22bd92a94bb6cb08fd6802cafca /llvm/lib/Transforms/IPO/PartialInlining.cpp | |
parent | 5c80618fb78e5571e859e42b7ff2f062f5fc6f81 (diff) | |
download | bcm5719-llvm-ab8722f80a23169c2e45dfa129216979a6fb54f8.tar.gz bcm5719-llvm-ab8722f80a23169c2e45dfa129216979a6fb54f8.zip |
[PartialInlining] Add more early filtering
This is a follow up to the previous
inline cost patch for quicker filtering.
llvm-svn: 301959
Diffstat (limited to 'llvm/lib/Transforms/IPO/PartialInlining.cpp')
-rw-r--r-- | llvm/lib/Transforms/IPO/PartialInlining.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/IPO/PartialInlining.cpp b/llvm/lib/Transforms/IPO/PartialInlining.cpp index 1bb9d654ec1..2db47b3b562 100644 --- a/llvm/lib/Transforms/IPO/PartialInlining.cpp +++ b/llvm/lib/Transforms/IPO/PartialInlining.cpp @@ -337,6 +337,16 @@ Function *PartialInlinerImpl::unswitchFunction(Function *F) { if (F->hasAddressTaken()) return nullptr; + // Let inliner handle it + if (F->hasFnAttribute(Attribute::AlwaysInline)) + return nullptr; + + if (F->hasFnAttribute(Attribute::NoInline)) + return nullptr; + + if (PSI->isFunctionEntryCold(F)) + return nullptr; + std::unique_ptr<FunctionOutliningInfo> OutliningInfo = computeOutliningInfo(F); |