Author: Arthur Eubanks Date: 2021-01-07T22:33:32-08:00 New Revision: 69cf7350628ace9de0908a51b770ecf3ee292848
URL: https://github.com/llvm/llvm-project/commit/69cf7350628ace9de0908a51b770ecf3ee292848 DIFF: https://github.com/llvm/llvm-project/commit/69cf7350628ace9de0908a51b770ecf3ee292848.diff LOG: [NewPM] Don't error when there's an unrecognized pass name This currently blocks --print-before/after with a legacy PM pass, for example when we use the new PM for the optimization pipeline but the legacy PM for the codegen pipeline. Also in the future when the codegen pipeline works with the new PM there will be multiple places to specify passes, so even when everything is using the new PM, there will still be multiple places that can accept different pass names. Reviewed By: hoy, ychen Differential Revision: https://reviews.llvm.org/D94283 Added: Modified: llvm/include/llvm/IR/PassInstrumentation.h llvm/lib/IR/PassInstrumentation.cpp llvm/lib/Passes/PassBuilder.cpp llvm/test/Other/print-before-after.ll Removed: ################################################################################ diff --git a/llvm/include/llvm/IR/PassInstrumentation.h b/llvm/include/llvm/IR/PassInstrumentation.h index 98b3fd451e4f..291f324b159a 100644 --- a/llvm/include/llvm/IR/PassInstrumentation.h +++ b/llvm/include/llvm/IR/PassInstrumentation.h @@ -127,8 +127,6 @@ class PassInstrumentationCallbacks { void addClassToPassName(StringRef ClassName, StringRef PassName); /// Get the pass name for a given pass class name. StringRef getPassNameForClassName(StringRef ClassName); - /// Whether or not the class to pass name map contains the pass name. - bool hasPassName(StringRef PassName); private: friend class PassInstrumentation; diff --git a/llvm/lib/IR/PassInstrumentation.cpp b/llvm/lib/IR/PassInstrumentation.cpp index 6a2defcf6b0e..56a36db21e28 100644 --- a/llvm/lib/IR/PassInstrumentation.cpp +++ b/llvm/lib/IR/PassInstrumentation.cpp @@ -22,14 +22,6 @@ void PassInstrumentationCallbacks::addClassToPassName(StringRef ClassName, ClassToPassName[ClassName] = PassName.str(); } -bool PassInstrumentationCallbacks::hasPassName(StringRef PassName) { - for (const auto &E : ClassToPassName) { - if (E.getValue() == PassName) - return true; - } - return false; -} - StringRef PassInstrumentationCallbacks::getPassNameForClassName(StringRef ClassName) { return ClassToPassName[ClassName]; diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp index 8f6a96dcf4ad..527d19d63589 100644 --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -459,14 +459,6 @@ PassBuilder::PassBuilder(bool DebugLogging, TargetMachine *TM, #define CGSCC_ANALYSIS(NAME, CREATE_PASS) \ PIC->addClassToPassName(decltype(CREATE_PASS)::name(), NAME); #include "PassRegistry.def" - for (const auto &P : printBeforePasses()) { - if (!PIC->hasPassName(P)) - report_fatal_error("unrecognized pass name: " + P); - } - for (const auto &P : printAfterPasses()) { - if (!PIC->hasPassName(P)) - report_fatal_error("unrecognized pass name: " + P); - } } } diff --git a/llvm/test/Other/print-before-after.ll b/llvm/test/Other/print-before-after.ll index c0b929d70c1b..41977929f741 100644 --- a/llvm/test/Other/print-before-after.ll +++ b/llvm/test/Other/print-before-after.ll @@ -1,5 +1,5 @@ -; RUN: not --crash opt < %s -disable-output -passes='no-op-module' -print-before=bleh 2>&1 | FileCheck %s --check-prefix=NONE --allow-empty -; RUN: not --crash opt < %s -disable-output -passes='no-op-module' -print-after=bleh 2>&1 | FileCheck %s --check-prefix=NONE --allow-empty +; RUN: opt < %s -disable-output -passes='no-op-module' -print-before=bleh 2>&1 | FileCheck %s --check-prefix=NONE --allow-empty +; RUN: opt < %s -disable-output -passes='no-op-module' -print-after=bleh 2>&1 | FileCheck %s --check-prefix=NONE --allow-empty ; RUN: opt < %s -disable-output -passes='no-op-module' -print-before=no-op-function 2>&1 | FileCheck %s --check-prefix=NONE --allow-empty ; RUN: opt < %s -disable-output -passes='no-op-module' -print-after=no-op-function 2>&1 | FileCheck %s --check-prefix=NONE --allow-empty ; RUN: opt < %s -disable-output -passes='no-op-module,no-op-function' -print-before=no-op-module 2>&1 | FileCheck %s --check-prefix=ONCE _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits