diff options
Diffstat (limited to 'llvm/lib/CodeGen/MachineOutliner.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineOutliner.cpp | 37 |
1 files changed, 1 insertions, 36 deletions
diff --git a/llvm/lib/CodeGen/MachineOutliner.cpp b/llvm/lib/CodeGen/MachineOutliner.cpp index c12035455ab..9a8eebff2b5 100644 --- a/llvm/lib/CodeGen/MachineOutliner.cpp +++ b/llvm/lib/CodeGen/MachineOutliner.cpp @@ -46,7 +46,6 @@ #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/MachineInstrBuilder.h" #include "llvm/CodeGen/MachineModuleInfo.h" -#include "llvm/CodeGen/MachineOptimizationRemarkEmitter.h" #include "llvm/CodeGen/Passes.h" #include "llvm/IR/IRBuilder.h" #include "llvm/Support/Allocator.h" @@ -65,7 +64,6 @@ #define DEBUG_TYPE "machine-outliner" using namespace llvm; -using namespace ore; STATISTIC(NumOutlined, "Number of candidates outlined"); STATISTIC(FunctionsCreated, "Number of functions created"); @@ -897,41 +895,8 @@ MachineOutliner::findCandidates(SuffixTree &ST, const TargetInstrInfo &TII, size_t OutliningCost = CallOverhead + FrameOverhead + SequenceOverhead; size_t NotOutliningCost = SequenceOverhead * Parent.OccurrenceCount; - // Is it better to outline this candidate than not? - if (NotOutliningCost <= OutliningCost) { - // Outlining this candidate would take more instructions than not - // outlining. - // Emit a remark explaining why we didn't outline this candidate. - std::pair<MachineBasicBlock::iterator, MachineBasicBlock::iterator> C = - CandidateClass[0]; - MachineOptimizationRemarkEmitter MORE( - *(C.first->getParent()->getParent()), nullptr); - MachineOptimizationRemarkMissed R(DEBUG_TYPE, "NotOutliningCheaper", - C.first->getDebugLoc(), - C.first->getParent()); - R << "Did not outline " << NV("Length", StringLen) << " instructions" - << " from " << NV("NumOccurrences", CandidateClass.size()) - << " locations." - << " Instructions from outlining all occurrences (" - << NV("OutliningCost", OutliningCost) << ")" - << " >= Unoutlined instruction count (" - << NV("NotOutliningCost", NotOutliningCost) << ")" - << " (Also found at: "; - - // Tell the user the other places the candidate was found. - for (size_t i = 1, e = CandidateClass.size(); i < e; i++) { - R << NV((Twine("OtherStartLoc") + Twine(i)).str(), - CandidateClass[i].first->getDebugLoc()); - if (i != e - 1) - R << ", "; - } - - R << ")"; - MORE.emit(R); - - // Move to the next candidate. + if (NotOutliningCost <= OutliningCost) continue; - } size_t Benefit = NotOutliningCost - OutliningCost; |