diff options
author | Jin Lin <jinl@uber.com> | 2020-03-17 10:03:27 -0700 |
---|---|---|
committer | Jin Lin <jinl@uber.com> | 2020-03-17 10:03:27 -0700 |
commit | b9f1b8be1cb02f6159c27856e33996a7edb2bd18 (patch) | |
tree | ab40210bc213ceea09e4efd59de87e95fa54e5c0 /llvm/lib/CodeGen/MachineOutliner.cpp | |
parent | 76cf14035be346ad7f8f9fef334fbc03fc11bd33 (diff) | |
download | llvm-b9f1b8be1cb02f6159c27856e33996a7edb2bd18.zip llvm-b9f1b8be1cb02f6159c27856e33996a7edb2bd18.tar.gz llvm-b9f1b8be1cb02f6159c27856e33996a7edb2bd18.tar.bz2 |
Revert "Support repeated machine outlining"
This reverts commit 1f93b162fc6bed2e7763ac6c35cf51741014400e.
Diffstat (limited to 'llvm/lib/CodeGen/MachineOutliner.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineOutliner.cpp | 47 |
1 files changed, 3 insertions, 44 deletions
diff --git a/llvm/lib/CodeGen/MachineOutliner.cpp b/llvm/lib/CodeGen/MachineOutliner.cpp index d63f194..19bcb09 100644 --- a/llvm/lib/CodeGen/MachineOutliner.cpp +++ b/llvm/lib/CodeGen/MachineOutliner.cpp @@ -97,13 +97,6 @@ static cl::opt<bool> EnableLinkOnceODROutlining( cl::desc("Enable the machine outliner on linkonceodr functions"), cl::init(false)); -// Set the number of times to repeatedly apply outlining. -// Defaults to 1, but more repetitions can save additional size. -static cl::opt<unsigned> - NumRepeat("machine-outline-runs", cl::Hidden, - cl::desc("The number of times to apply machine outlining"), - cl::init(1)); - namespace { /// Represents an undefined index in the suffix tree. @@ -849,9 +842,6 @@ struct MachineOutliner : public ModulePass { /// linkonceodr linkage. bool OutlineFromLinkOnceODRs = false; - /// The current repeat number of machine outlining. - unsigned OutlineRepeatedNum = 0; - /// Set to true if the outliner should run on all functions in the module /// considered safe for outlining. /// Set to true by default for compatibility with llc's -run-pass option. @@ -910,11 +900,8 @@ struct MachineOutliner : public ModulePass { InstructionMapper &Mapper, unsigned Name); - /// Calls runOnceOnModule NumRepeat times - bool runOnModule(Module &M) override; - /// Calls 'doOutline()'. - bool runOnceOnModule(Module &M, unsigned Iter); + bool runOnModule(Module &M) override; /// Construct a suffix tree on the instructions in \p M and outline repeated /// strings from that tree. @@ -1112,13 +1099,7 @@ MachineFunction *MachineOutliner::createOutlinedFunction( // Create the function name. This should be unique. // FIXME: We should have a better naming scheme. This should be stable, // regardless of changes to the outliner's cost model/traversal order. - std::string FunctionName; - if (OutlineRepeatedNum > 0) - FunctionName = ("OUTLINED_FUNCTION_" + Twine(OutlineRepeatedNum + 1) + "_" + - Twine(Name)) - .str(); - else - FunctionName = ("OUTLINED_FUNCTION_" + Twine(Name)).str(); + std::string FunctionName = ("OUTLINED_FUNCTION_" + Twine(Name)).str(); // Create the function using an IR-level function. LLVMContext &C = M.getContext(); @@ -1457,14 +1438,12 @@ void MachineOutliner::emitInstrCountChangedRemark( } } -bool MachineOutliner::runOnceOnModule(Module &M, unsigned Iter) { +bool MachineOutliner::runOnModule(Module &M) { // Check if there's anything in the module. If it's empty, then there's // nothing to outline. if (M.empty()) return false; - OutlineRepeatedNum = Iter; - // Number to append to the current outlined function. unsigned OutlinedFunctionNum = 0; @@ -1528,23 +1507,3 @@ bool MachineOutliner::doOutline(Module &M, unsigned &OutlinedFunctionNum) { return OutlinedSomething; } - -// Apply machine outlining for NumRepeat times. -bool MachineOutliner::runOnModule(Module &M) { - if (NumRepeat < 1) - report_fatal_error("Expect NumRepeat for machine outlining " - "to be greater than or equal to 1!\n"); - - bool Changed = false; - for (unsigned I = 0; I < NumRepeat; I++) { - if (!runOnceOnModule(M, I)) { - LLVM_DEBUG(dbgs() << "Stopped outlining at iteration " << I - << " because no changes were found.\n";); - return Changed; - } - Changed = true; - } - LLVM_DEBUG(dbgs() << "Stopped outlining because iteration is " - "equal to " << NumRepeat << "\n";); - return Changed; -} |