[llvm-branch-commits] [llvm] 69cf735 - [NewPM] Don't error when there's an unrecognized pass name
Arthur Eubanks via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Jan 7 22:37:54 PST 2021
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
More information about the llvm-branch-commits
mailing list