[llvm] f98125a - Revert "[PassManager] Add pretty stack entries before P->run() call."

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 9 10:46:44 PST 2022


Author: Florian Hahn
Date: 2022-03-09T18:46:32Z
New Revision: f98125abb2d40920346b28921d39aa445498f57a

URL: https://github.com/llvm/llvm-project/commit/f98125abb2d40920346b28921d39aa445498f57a
DIFF: https://github.com/llvm/llvm-project/commit/f98125abb2d40920346b28921d39aa445498f57a.diff

LOG: Revert "[PassManager] Add pretty stack entries before P->run() call."

This reverts commit 128745cc2681c284bc6d0150a319673a6d6e8424.

This increased compile-time unnecessarily. Revert this change and follow
ups 2c7afadb4789 & add0c5856d5f.

http://llvm-compile-time-tracker.com/compare.php?from=338dfcd60f843082bb589b287d890dbd9394eb82&to=128745cc2681c284bc6d0150a319673a6d6e8424&stat=instructions

Added: 
    

Modified: 
    llvm/include/llvm/IR/PassManager.h
    llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
    llvm/lib/Analysis/CGSCCPassManager.cpp
    llvm/lib/IR/PassManager.cpp
    llvm/lib/Passes/PassBuilder.cpp
    llvm/lib/Passes/PassRegistry.def
    llvm/lib/Transforms/Scalar/LoopPassManager.cpp

Removed: 
    llvm/test/Other/crash-cgscc.ll
    llvm/test/Other/crash-function.ll
    llvm/test/Other/crash-loop.ll
    llvm/test/Other/crash-module.ll


################################################################################
diff  --git a/llvm/include/llvm/IR/PassManager.h b/llvm/include/llvm/IR/PassManager.h
index 4f7bfddbe65b2..12f9052a9eddc 100644
--- a/llvm/include/llvm/IR/PassManager.h
+++ b/llvm/include/llvm/IR/PassManager.h
@@ -46,7 +46,6 @@
 #include "llvm/IR/Module.h"
 #include "llvm/IR/PassInstrumentation.h"
 #include "llvm/IR/PassManagerInternal.h"
-#include "llvm/Support/PrettyStackTrace.h"
 #include "llvm/Support/TimeProfiler.h"
 #include "llvm/Support/TypeName.h"
 #include <cassert>
@@ -54,7 +53,6 @@
 #include <iterator>
 #include <list>
 #include <memory>
-#include <string>
 #include <tuple>
 #include <type_traits>
 #include <utility>
@@ -453,50 +451,6 @@ getAnalysisResult(AnalysisManager<IRUnitT, AnalysisArgTs...> &AM, IRUnitT &IR,
 // header.
 class PassInstrumentationAnalysis;
 
-class MachineFunction;
-class Loop;
-
-/// Add stack entry with the pass name and the IR unit it runs on.
-class NewPassManagerPrettyStackEntry : public PrettyStackTraceEntry {
-  enum class EntryTy {
-    Module,
-    CGSCC,
-    MachineFunction,
-    Loop,
-    Value,
-  };
-
-  union {
-    Module *M;
-    MachineFunction *MF;
-    Value *V;
-    StringRef LoopName;
-    std::string CGSCCName;
-  };
-  StringRef PassName;
-  EntryTy E;
-
-public:
-  NewPassManagerPrettyStackEntry(StringRef PassName, Module &M)
-      : M(&M), PassName(PassName), E(EntryTy::Module) {}
-  NewPassManagerPrettyStackEntry(StringRef PassName, MachineFunction &MF)
-      : MF(&MF), PassName(PassName), E(EntryTy::MachineFunction) {}
-  NewPassManagerPrettyStackEntry(StringRef PassName, Value &V)
-      : V(&V), PassName(PassName), E(EntryTy::Value) {}
-  NewPassManagerPrettyStackEntry(StringRef PassName, StringRef LoopName)
-      : LoopName(LoopName), PassName(PassName), E(EntryTy::Loop) {}
-  NewPassManagerPrettyStackEntry(StringRef PassName, std::string CGSCCName)
-      : CGSCCName(CGSCCName), PassName(PassName), E(EntryTy::CGSCC) {}
-
-  ~NewPassManagerPrettyStackEntry() override {
-    if (E == EntryTy::CGSCC)
-      CGSCCName.~basic_string();
-  }
-
-  /// print - Emit information about this stack frame to OS.
-  void print(raw_ostream &OS) const override;
-};
-
 /// Manages a sequence of passes over a particular unit of IR.
 ///
 /// A pass manager contains a sequence of passes to run over a particular unit
@@ -565,7 +519,6 @@ class PassManager : public PassInfoMixin<
       PreservedAnalyses PassPA;
       {
         TimeTraceScope TimeScope(P->name(), IR.getName());
-        NewPassManagerPrettyStackEntry StackEntry(P->name(), IR);
         PassPA = P->run(IR, AM, ExtraArgs...);
       }
 

diff  --git a/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h b/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
index 6f70caf37ab3f..1df510474ca7f 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
@@ -395,7 +395,6 @@ Optional<PreservedAnalyses> LoopPassManager::runSinglePass(
   PreservedAnalyses PA;
   {
     TimeTraceScope TimeScope(Pass->name(), IR.getName());
-    NewPassManagerPrettyStackEntry StackEntry(Pass->name(), L.getName());
     PA = Pass->run(IR, AM, AR, U);
   }
 

diff  --git a/llvm/lib/Analysis/CGSCCPassManager.cpp b/llvm/lib/Analysis/CGSCCPassManager.cpp
index 88878a1bdcab5..464d89353cfe0 100644
--- a/llvm/lib/Analysis/CGSCCPassManager.cpp
+++ b/llvm/lib/Analysis/CGSCCPassManager.cpp
@@ -87,7 +87,6 @@ PassManager<LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &,
     PreservedAnalyses PassPA;
     {
       TimeTraceScope TimeScope(Pass->name());
-      NewPassManagerPrettyStackEntry StackEntry(Pass->name(), C->getName());
       PassPA = Pass->run(*C, AM, G, UR);
     }
 

diff  --git a/llvm/lib/IR/PassManager.cpp b/llvm/lib/IR/PassManager.cpp
index f8766b97a616d..3025c3853d5fe 100644
--- a/llvm/lib/IR/PassManager.cpp
+++ b/llvm/lib/IR/PassManager.cpp
@@ -124,7 +124,6 @@ PreservedAnalyses ModuleToFunctionPassAdaptor::run(Module &M,
     PreservedAnalyses PassPA;
     {
       TimeTraceScope TimeScope(Pass->name(), F.getName());
-      NewPassManagerPrettyStackEntry StackEntry(Pass->name(), F);
       PassPA = Pass->run(F, FAM);
     }
 
@@ -153,43 +152,3 @@ PreservedAnalyses ModuleToFunctionPassAdaptor::run(Module &M,
 AnalysisSetKey CFGAnalyses::SetKey;
 
 AnalysisSetKey PreservedAnalyses::AllAnalysesKey;
-
-void NewPassManagerPrettyStackEntry::print(raw_ostream &OS) const {
-  OS << "Running pass '" << PassName << "'";
-
-  if (E == EntryTy::Module) {
-    OS << " on module '" << M->getModuleIdentifier() << "'.\n";
-    return;
-  }
-
-  if (E == EntryTy::MachineFunction) {
-    // Printing the machine function's name would require pulling in
-    // llvm/Codegen/MachineFunction.h
-    OS << " on machine function \n";
-    return;
-  }
-
-  if (E == EntryTy::Loop) {
-    OS << " on loop '" << LoopName << "'.\n";
-    return;
-  }
-
-  if (E == EntryTy::CGSCC) {
-    OS << " on CGSCC '" << CGSCCName << "'.\n";
-    return;
-  }
-
-  assert(E == EntryTy::Value && "unexpected stack entry type");
-
-  OS << " on ";
-  if (isa<Function>(V))
-    OS << "function";
-  else if (isa<BasicBlock>(V))
-    OS << "basic block";
-  else
-    OS << "value";
-
-  OS << " '";
-  V->printAsOperand(OS, /*PrintType=*/false);
-  OS << "'\n";
-}

diff  --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp
index d12f7d4cd593a..7553e1fd3e563 100644
--- a/llvm/lib/Passes/PassBuilder.cpp
+++ b/llvm/lib/Passes/PassBuilder.cpp
@@ -374,31 +374,6 @@ bool shouldPopulateClassToPassNames() {
 
 } // namespace
 
-/// Passes to test crash handling.
-/// DO NOT USE THIS EXCEPT FOR TESTING!
-struct CrashingFunctionPass : public PassInfoMixin<CrashingFunctionPass> {
-  PreservedAnalyses run(Function &, FunctionAnalysisManager &) {
-    llvm_unreachable("");
-  }
-};
-struct CrashingModulePass : public PassInfoMixin<CrashingModulePass> {
-  PreservedAnalyses run(Module &, ModuleAnalysisManager &) {
-    llvm_unreachable("");
-  }
-};
-struct CrashingLoopPass : public PassInfoMixin<CrashingLoopPass> {
-  PreservedAnalyses run(Loop &, LoopAnalysisManager &,
-                        LoopStandardAnalysisResults &, LPMUpdater &) {
-    llvm_unreachable("");
-  }
-};
-struct CrashingCGSCCPass : public PassInfoMixin<CrashingCGSCCPass> {
-  PreservedAnalyses run(LazyCallGraph::SCC &, CGSCCAnalysisManager &,
-                        LazyCallGraph &, CGSCCUpdateResult &) {
-    llvm_unreachable("");
-  }
-};
-
 PassBuilder::PassBuilder(TargetMachine *TM, PipelineTuningOptions PTO,
                          Optional<PGOOptions> PGOOpt,
                          PassInstrumentationCallbacks *PIC)

diff  --git a/llvm/lib/Passes/PassRegistry.def b/llvm/lib/Passes/PassRegistry.def
index 08d4b3087ee97..0c77509630d25 100644
--- a/llvm/lib/Passes/PassRegistry.def
+++ b/llvm/lib/Passes/PassRegistry.def
@@ -50,7 +50,6 @@ MODULE_PASS("canonicalize-aliases", CanonicalizeAliasesPass())
 MODULE_PASS("cg-profile", CGProfilePass())
 MODULE_PASS("check-debugify", NewPMCheckDebugifyPass())
 MODULE_PASS("constmerge", ConstantMergePass())
-MODULE_PASS("crash-module", CrashingModulePass())
 MODULE_PASS("cross-dso-cfi", CrossDSOCFIPass())
 MODULE_PASS("deadargelim", DeadArgumentEliminationPass())
 MODULE_PASS("debugify", NewPMDebugifyPass())
@@ -162,7 +161,6 @@ CGSCC_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC))
 #define CGSCC_PASS(NAME, CREATE_PASS)
 #endif
 CGSCC_PASS("argpromotion", ArgumentPromotionPass())
-CGSCC_PASS("crash-cgscc", CrashingCGSCCPass())
 CGSCC_PASS("invalidate<all>", InvalidateAllAnalysesPass())
 CGSCC_PASS("function-attrs", PostOrderFunctionAttrsPass())
 CGSCC_PASS("attributor-cgscc", AttributorCGSCCPass())
@@ -253,7 +251,6 @@ FUNCTION_PASS("coro-early", CoroEarlyPass())
 FUNCTION_PASS("coro-elide", CoroElidePass())
 FUNCTION_PASS("coro-cleanup", CoroCleanupPass())
 FUNCTION_PASS("correlated-propagation", CorrelatedValuePropagationPass())
-FUNCTION_PASS("crash-function", CrashingFunctionPass())
 FUNCTION_PASS("dce", DCEPass())
 FUNCTION_PASS("dfa-jump-threading", DFAJumpThreadingPass())
 FUNCTION_PASS("div-rem-pairs", DivRemPairsPass())
@@ -484,7 +481,6 @@ LOOP_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC))
 #define LOOP_PASS(NAME, CREATE_PASS)
 #endif
 LOOP_PASS("canon-freeze", CanonicalizeFreezeInLoopsPass())
-LOOP_PASS("crash-loop", CrashingLoopPass())
 LOOP_PASS("dot-ddg", DDGDotPrinterPass())
 LOOP_PASS("invalidate<all>", InvalidateAllAnalysesPass())
 LOOP_PASS("licm", LICMPass())

diff  --git a/llvm/lib/Transforms/Scalar/LoopPassManager.cpp b/llvm/lib/Transforms/Scalar/LoopPassManager.cpp
index b71aa2beb15b5..d20d275ea60c4 100644
--- a/llvm/lib/Transforms/Scalar/LoopPassManager.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopPassManager.cpp
@@ -294,7 +294,6 @@ PreservedAnalyses FunctionToLoopPassAdaptor::run(Function &F,
     PreservedAnalyses PassPA;
     {
       TimeTraceScope TimeScope(Pass->name());
-      NewPassManagerPrettyStackEntry StackEntry(Pass->name(), L->getName());
       PassPA = Pass->run(*L, LAM, LAR, Updater);
     }
 

diff  --git a/llvm/test/Other/crash-cgscc.ll b/llvm/test/Other/crash-cgscc.ll
deleted file mode 100644
index 2d44f963c9a1d..0000000000000
--- a/llvm/test/Other/crash-cgscc.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; REQUIRES: asserts
-
-; RUN: not --crash opt -passes=crash-cgscc %s 2> %t
-; RUN: FileCheck --input-file=%t %s
-
-; CHECK:      Stack dump:
-; CHECK-NEXT: 0.    Program arguments:
-; CHECK-NEXT: 1.    Running pass 'ModuleToPostOrderCGSCCPassAdaptor' on module
-; CHECK-NEXT: 2.    Running pass 'CrashingCGSCCPass' on CGSCC '(foo)'.
-
-define void @foo() {
-  ret void
-}

diff  --git a/llvm/test/Other/crash-function.ll b/llvm/test/Other/crash-function.ll
deleted file mode 100644
index eac62c54d7980..0000000000000
--- a/llvm/test/Other/crash-function.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; REQUIRES: asserts
-
-; RUN: not --crash opt -passes=crash-function %s 2> %t
-; RUN: FileCheck --input-file=%t %s
-
-; CHECK:      Stack dump:
-; CHECK-NEXT: 0.  Program arguments:
-; CHECK-NEXT: 1.  Running pass 'ModuleToFunctionPassAdaptor' on module
-; CHECK-NEXT: 2.  Running pass 'PassManager<{{.*}}llvm::Function{{.*}}>' on function '@foo'
-; CHECK-NEXT: 3.  Running pass 'CrashingFunctionPass' on function '@foo'
-
-define void @foo() {
-  ret void
-}

diff  --git a/llvm/test/Other/crash-loop.ll b/llvm/test/Other/crash-loop.ll
deleted file mode 100644
index 7c0ba58a034d6..0000000000000
--- a/llvm/test/Other/crash-loop.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; REQUIRES: asserts
-
-; RUN: not --crash opt -passes=crash-loop %s 2> %t
-; RUN: FileCheck --input-file=%t %s
-
-; CHECK:      Stack dump:
-; CHECK-NEXT: 0.  Program arguments:
-; CHECK-NEXT: 1.  Running pass 'ModuleToFunctionPassAdaptor' on module
-; CHECK-NEXT: 2.  Running pass 'PassManager<{{.*}}llvm::Function{{.*}}>' on function '@foo'
-; CHECK-NEXT: 3.  Running pass 'FunctionToLoopPassAdaptor' on function '@foo'
-; CHECK-NEXT: 4.  Running pass 'PassManager<{{.*}}llvm::Loop,{{.+}}>' on loop 'loop.header'.
-; CHECK-NEXT: 5.  Running pass 'CrashingLoopPass' on loop 'loop.header'.
-
-define void @foo() {
-entry:
-  br label %loop.header
-
-loop.header:
-  br label %loop.header
-}

diff  --git a/llvm/test/Other/crash-module.ll b/llvm/test/Other/crash-module.ll
deleted file mode 100644
index 46bfda800ca5f..0000000000000
--- a/llvm/test/Other/crash-module.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; REQUIRES: asserts
-
-; RUN: not --crash opt -passes=crash-module %s 2> %t
-; RUN: FileCheck --input-file=%t %s
-
-; CHECK:      Stack dump:
-; CHECK-NEXT: 0. Program arguments:
-; CHECK-NEXT: 1. Running pass 'CrashingModulePass' on module
-
-define void @foo() {
-  ret void
-}


        


More information about the llvm-commits mailing list