From 9c81d0fdeb595df5b2c74e5f3385f74a68c6238a Mon Sep 17 00:00:00 2001 From: Andrew Kaylor Date: Mon, 23 May 2016 21:57:54 +0000 Subject: Avoid including AlwaysInliner pass in opt-bisect search. Differential Revision: http://reviews.llvm.org/D19640 llvm-svn: 270495 --- llvm/lib/Transforms/IPO/InlineAlways.cpp | 3 +++ llvm/lib/Transforms/IPO/Inliner.cpp | 3 +++ 2 files changed, 6 insertions(+) (limited to 'llvm/lib/Transforms') diff --git a/llvm/lib/Transforms/IPO/InlineAlways.cpp b/llvm/lib/Transforms/IPO/InlineAlways.cpp index e7623a96300..c403bbf8ecc 100644 --- a/llvm/lib/Transforms/IPO/InlineAlways.cpp +++ b/llvm/lib/Transforms/IPO/InlineAlways.cpp @@ -45,6 +45,9 @@ public: initializeAlwaysInlinerPass(*PassRegistry::getPassRegistry()); } + /// Main run interface method. We override here to avoid calling skipSCC(). + bool runOnSCC(CallGraphSCC &SCC) override { return inlineCalls(SCC); } + static char ID; // Pass identification, replacement for typeid InlineCost getInlineCost(CallSite CS) override; diff --git a/llvm/lib/Transforms/IPO/Inliner.cpp b/llvm/lib/Transforms/IPO/Inliner.cpp index 03d996a4d5d..a3956ad296f 100644 --- a/llvm/lib/Transforms/IPO/Inliner.cpp +++ b/llvm/lib/Transforms/IPO/Inliner.cpp @@ -368,7 +368,10 @@ static bool InlineHistoryIncludes(Function *F, int InlineHistoryID, bool Inliner::runOnSCC(CallGraphSCC &SCC) { if (skipSCC(SCC)) return false; + return inlineCalls(SCC); +} +bool Inliner::inlineCalls(CallGraphSCC &SCC) { CallGraph &CG = getAnalysis().getCallGraph(); ACT = &getAnalysis(); auto &TLI = getAnalysis().getTLI(); -- cgit v1.2.3