From 645af79e8e5f23382934b8d65f8af94438893f9f Mon Sep 17 00:00:00 2001 From: Markus Lavin Date: Thu, 2 Sep 2021 08:22:17 +0200 Subject: [PATCH] Revert "[NPM] Added opt option -print-pipeline-passes." This reverts commit c71869ed4c24b3d4d13e2f83ee2c0104013ca129. --- llvm/include/llvm/IR/PassManager.h | 38 ---------------------- llvm/include/llvm/IR/PassManagerInternal.h | 9 ----- .../llvm/Transforms/Scalar/LoopPassManager.h | 4 --- llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h | 3 -- llvm/lib/IR/PassManager.cpp | 7 ---- llvm/lib/Passes/PassBuilder.cpp | 8 +---- llvm/lib/Transforms/Scalar/LoopPassManager.cpp | 18 ---------- llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp | 15 --------- llvm/test/Other/new-pm-print-pipeline.ll | 17 ---------- llvm/tools/opt/NewPMDriver.cpp | 12 ------- 10 files changed, 1 insertion(+), 130 deletions(-) delete mode 100644 llvm/test/Other/new-pm-print-pipeline.ll diff --git a/llvm/include/llvm/IR/PassManager.h b/llvm/include/llvm/IR/PassManager.h index 8583cab..8e592bf 100644 --- a/llvm/include/llvm/IR/PassManager.h +++ b/llvm/include/llvm/IR/PassManager.h @@ -381,13 +381,6 @@ template struct PassInfoMixin { Name = Name.drop_front(strlen("llvm::")); return Name; } - - void printPipeline(raw_ostream &OS, - function_ref MapClassName2PassName) { - auto ClassName = name(); - auto PassName = MapClassName2PassName(ClassName); - OS << PassName; - } }; /// A CRTP mix-in that provides informational APIs needed for analysis passes. @@ -487,16 +480,6 @@ public: return *this; } - void printPipeline(raw_ostream &OS, - function_ref MapClassName2PassName) { - for (unsigned Idx = 0, Size = Passes.size(); Idx != Size; ++Idx) { - auto *P = Passes[Idx].get(); - P->printPipeline(OS, MapClassName2PassName); - if (Idx + 1 < Size) - OS << ","; - } - } - /// Run all of the passes in this manager over the given unit of IR. /// ExtraArgs are passed to each pass. PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM, @@ -1212,8 +1195,6 @@ public: /// Runs the function pass across every function in the module. PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM); - void printPipeline(raw_ostream &OS, - function_ref MapClassName2PassName); static bool isRequired() { return true; } @@ -1262,12 +1243,6 @@ struct RequireAnalysisPass return PreservedAnalyses::all(); } - void printPipeline(raw_ostream &OS, - function_ref MapClassName2PassName) { - auto ClassName = AnalysisT::name(); - auto PassName = MapClassName2PassName(ClassName); - OS << "require<" << PassName << ">"; - } static bool isRequired() { return true; } }; @@ -1288,12 +1263,6 @@ struct InvalidateAnalysisPass PA.abandon(); return PA; } - void printPipeline(raw_ostream &OS, - function_ref MapClassName2PassName) { - auto ClassName = AnalysisT::name(); - auto PassName = MapClassName2PassName(ClassName); - OS << "invalidate<" << PassName << ">"; - } }; /// A utility pass that does nothing, but preserves no analyses. @@ -1343,13 +1312,6 @@ public: return PA; } - void printPipeline(raw_ostream &OS, - function_ref MapClassName2PassName) { - OS << "repeat<" << Count << ">("; - P.printPipeline(OS, MapClassName2PassName); - OS << ")"; - } - private: int Count; PassT P; diff --git a/llvm/include/llvm/IR/PassManagerInternal.h b/llvm/include/llvm/IR/PassManagerInternal.h index 29b55a8..8f42e69f 100644 --- a/llvm/include/llvm/IR/PassManagerInternal.h +++ b/llvm/include/llvm/IR/PassManagerInternal.h @@ -46,9 +46,6 @@ struct PassConcept { virtual PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM, ExtraArgTs... ExtraArgs) = 0; - virtual void - printPipeline(raw_ostream &OS, - function_ref MapClassName2PassName) = 0; /// Polymorphic method to access the name of a pass. virtual StringRef name() const = 0; @@ -88,12 +85,6 @@ struct PassModel : PassConcept { return Pass.run(IR, AM, ExtraArgs...); } - void printPipeline( - raw_ostream &OS, - function_ref MapClassName2PassName) override { - Pass.printPipeline(OS, MapClassName2PassName); - } - StringRef name() const override { return PassT::name(); } template diff --git a/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h b/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h index 9bebe64..020cfb9 100644 --- a/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h +++ b/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h @@ -94,8 +94,6 @@ public: PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &U); - void printPipeline(raw_ostream &OS, - function_ref MapClassName2PassName); /// Add either a loop pass or a loop-nest pass to the pass manager. Append \p /// Pass to the list of loop passes if it has a dedicated \fn run() method for /// loops and to the list of loop-nest passes if the \fn run() method is for @@ -426,8 +424,6 @@ public: /// Runs the loop passes across every loop in the function. PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM); - void printPipeline(raw_ostream &OS, - function_ref MapClassName2PassName); static bool isRequired() { return true; } diff --git a/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h b/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h index 67db503..7c53938 100644 --- a/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h +++ b/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h @@ -41,9 +41,6 @@ public: /// Run the pass over the function. PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM); - - void printPipeline(raw_ostream &OS, - function_ref MapClassName2PassName); }; } diff --git a/llvm/lib/IR/PassManager.cpp b/llvm/lib/IR/PassManager.cpp index bb8885a..4cf7ab2 100644 --- a/llvm/lib/IR/PassManager.cpp +++ b/llvm/lib/IR/PassManager.cpp @@ -91,13 +91,6 @@ bool FunctionAnalysisManagerModuleProxy::Result::invalidate( } } // namespace llvm -void ModuleToFunctionPassAdaptor::printPipeline( - raw_ostream &OS, function_ref MapClassName2PassName) { - OS << "function("; - Pass->printPipeline(OS, MapClassName2PassName); - OS << ")"; -} - PreservedAnalyses ModuleToFunctionPassAdaptor::run(Module &M, ModuleAnalysisManager &AM) { FunctionAnalysisManager &FAM = diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp index c7fd233..e118633 100644 --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -291,11 +291,6 @@ PipelineTuningOptions::PipelineTuningOptions() { } namespace llvm { -cl::opt PrintPipelinePasses( - "print-pipeline-passes", - cl::desc("Print a '-passes' compatible string describing the pipeline " - "(best-effort only).")); - extern cl::opt MaxDevirtIterations; extern cl::opt EnableConstraintElimination; extern cl::opt EnableFunctionSpecialization; @@ -444,8 +439,7 @@ AnalysisKey NoOpLoopAnalysis::Key; /// it. This should be updated if new pass instrumentation wants to use the map. /// We currently only use this for --print-before/after. bool shouldPopulateClassToPassNames() { - return PrintPipelinePasses || !printBeforePasses().empty() || - !printAfterPasses().empty(); + return !printBeforePasses().empty() || !printAfterPasses().empty(); } } // namespace diff --git a/llvm/lib/Transforms/Scalar/LoopPassManager.cpp b/llvm/lib/Transforms/Scalar/LoopPassManager.cpp index 1794d053..9f61aa0 100644 --- a/llvm/lib/Transforms/Scalar/LoopPassManager.cpp +++ b/llvm/lib/Transforms/Scalar/LoopPassManager.cpp @@ -44,18 +44,6 @@ PassManager::printPipeline(raw_ostream &OS, - function_ref - MapClassName2PassName) { - for (unsigned Idx = 0, Size = LoopPasses.size(); Idx != Size; ++Idx) { - auto *P = LoopPasses[Idx].get(); - P->printPipeline(OS, MapClassName2PassName); - if (Idx + 1 < Size) - OS << ","; - } -} - // Run both loop passes and loop-nest passes on top-level loop \p L. PreservedAnalyses LoopPassManager::runWithLoopNestPasses(Loop &L, LoopAnalysisManager &AM, @@ -184,12 +172,6 @@ LoopPassManager::runWithoutLoopNestPasses(Loop &L, LoopAnalysisManager &AM, } } // namespace llvm -void FunctionToLoopPassAdaptor::printPipeline( - raw_ostream &OS, function_ref MapClassName2PassName) { - OS << (UseMemorySSA ? "loop-mssa(" : "loop("); - Pass->printPipeline(OS, MapClassName2PassName); - OS << ")"; -} PreservedAnalyses FunctionToLoopPassAdaptor::run(Function &F, FunctionAnalysisManager &AM) { // Before we even compute any loop analyses, first run a miniature function diff --git a/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp b/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp index c499d51..09d59b0 100644 --- a/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp +++ b/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp @@ -319,21 +319,6 @@ SimplifyCFGPass::SimplifyCFGPass(const SimplifyCFGOptions &Opts) applyCommandLineOverridesToOptions(Options); } -void SimplifyCFGPass::printPipeline( - raw_ostream &OS, function_ref MapClassName2PassName) { - static_cast *>(this)->printPipeline( - OS, MapClassName2PassName); - OS << "<"; - OS << "bonus-inst-threshold=" << Options.BonusInstThreshold << ";"; - OS << (Options.ForwardSwitchCondToPhi ? "" : "no-") << "forward-switch-cond;"; - OS << (Options.ConvertSwitchToLookupTable ? "" : "no-") - << "switch-to-lookup;"; - OS << (Options.NeedCanonicalLoop ? "" : "no-") << "keep-loops;"; - OS << (Options.HoistCommonInsts ? "" : "no-") << "hoist-common-insts;"; - OS << (Options.SinkCommonInsts ? "" : "no-") << "sink-common-insts"; - OS << ">"; -} - PreservedAnalyses SimplifyCFGPass::run(Function &F, FunctionAnalysisManager &AM) { auto &TTI = AM.getResult(F); diff --git a/llvm/test/Other/new-pm-print-pipeline.ll b/llvm/test/Other/new-pm-print-pipeline.ll deleted file mode 100644 index c17ced2..0000000 --- a/llvm/test/Other/new-pm-print-pipeline.ll +++ /dev/null @@ -1,17 +0,0 @@ -;; Test that the -print-pipeline-passes option correctly prints some explicitly specified pipelines. - -; RUN: opt -disable-output -disable-verify -print-pipeline-passes -passes='function(adce),function(simplifycfg)' < %s | FileCheck %s --match-full-lines --check-prefixes=CHECK-0 -; CHECK-0: function(adce),function(simplifycfg) - -; RUN: opt -disable-output -disable-verify -print-pipeline-passes -passes='module(rpo-function-attrs,require,function(float2int,lower-constant-intrinsics,loop(loop-rotate)),invalidate)' < %s | FileCheck %s --match-full-lines --check-prefixes=CHECK-1 -; CHECK-1: rpo-function-attrs,require,function(float2int,lower-constant-intrinsics,loop(loop-rotate)),invalidate - -; RUN: opt -disable-output -disable-verify -print-pipeline-passes -passes='repeat<5>(function(mem2reg)),invalidate' < %s | FileCheck %s --match-full-lines --check-prefixes=CHECK-2 -; CHECK-2: repeat<5>(function(mem2reg)),invalidate - -;; Test that we get ClassName printed when there is no ClassName to pass-name mapping (as is the case for the BitcodeWriterPass). -; RUN: opt -o /dev/null -disable-verify -print-pipeline-passes -passes='function(mem2reg)' < %s | FileCheck %s --match-full-lines --check-prefixes=CHECK-3 -; CHECK-3: function(mem2reg),BitcodeWriterPass - -; RUN: opt -disable-output -disable-verify -print-pipeline-passes -passes='function(loop-mssa(indvars))' < %s | FileCheck %s --match-full-lines --check-prefixes=CHECK-4 -; CHECK-4: function(loop-mssa(indvars)) diff --git a/llvm/tools/opt/NewPMDriver.cpp b/llvm/tools/opt/NewPMDriver.cpp index 794c01f..e1989958 100644 --- a/llvm/tools/opt/NewPMDriver.cpp +++ b/llvm/tools/opt/NewPMDriver.cpp @@ -137,7 +137,6 @@ extern cl::opt ProfileFile; extern cl::opt CSPGOKindFlag; extern cl::opt CSProfileGenFile; extern cl::opt DisableBasicAA; -extern cl::opt PrintPipelinePasses; } // namespace llvm static cl::opt @@ -474,17 +473,6 @@ bool llvm::runPassPipeline(StringRef Arg0, Module &M, TargetMachine *TM, // Before executing passes, print the final values of the LLVM options. cl::PrintOptionValues(); - // Print a textual, '-passes=' compatible, representation of pipeline if - // requested. - if (PrintPipelinePasses) { - MPM.printPipeline(outs(), [&PIC](StringRef ClassName) { - auto PassName = PIC.getPassNameForClassName(ClassName); - return PassName.empty() ? ClassName : PassName; - }); - outs() << "\n"; - return true; - } - // Now that we have all of the passes ready, run them. MPM.run(M, MAM); -- 2.7.4