From 1054bdf35560e528d67369213bec852c0c29373d Mon Sep 17 00:00:00 2001 From: Vedant Kumar Date: Sat, 19 Jan 2019 02:38:17 +0000 Subject: [PATCH] [HotColdSplit] Remove a set which tracked split functions (NFC) Use the begin/end iterator idiom to avoid visiting split functions, instead of doing a set lookup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351622 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/IPO/HotColdSplitting.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/lib/Transforms/IPO/HotColdSplitting.cpp b/lib/Transforms/IPO/HotColdSplitting.cpp index 6876ae60259..d6ac7183f77 100644 --- a/lib/Transforms/IPO/HotColdSplitting.cpp +++ b/lib/Transforms/IPO/HotColdSplitting.cpp @@ -183,7 +183,6 @@ private: Function *extractColdRegion(const BlockSequence &Region, DominatorTree &DT, BlockFrequencyInfo *BFI, TargetTransformInfo &TTI, OptimizationRemarkEmitter &ORE, unsigned Count); - SmallPtrSet OutlinedFunctions; ProfileSummaryInfo *PSI; function_ref GetBFI; function_ref GetTTI; @@ -212,10 +211,6 @@ public: // Returns false if the function should not be considered for hot-cold split // optimization. bool HotColdSplitting::shouldOutlineFrom(const Function &F) const { - // Do not try to outline again from an already outlined cold function. - if (OutlinedFunctions.count(&F)) - return false; - if (F.size() <= 2) return false; @@ -540,7 +535,6 @@ bool HotColdSplitting::outlineColdRegions(Function &F, ProfileSummaryInfo &PSI, extractColdRegion(SubRegion, DT, BFI, TTI, ORE, OutlinedFunctionID); if (Outlined) { ++OutlinedFunctionID; - OutlinedFunctions.insert(Outlined); Changed = true; } } while (!Region.empty()); @@ -551,8 +545,9 @@ bool HotColdSplitting::outlineColdRegions(Function &F, ProfileSummaryInfo &PSI, bool HotColdSplitting::run(Module &M) { bool Changed = false; - OutlinedFunctions.clear(); - for (auto &F : M) { + for (auto It = M.begin(), End = M.end(); It != End; ++It) { + Function &F = *It; + if (!shouldOutlineFrom(F)) { LLVM_DEBUG(llvm::dbgs() << "Skipping " << F.getName() << "\n"); continue; -- 2.50.1