[PATCH] D94283: [NewPM] Don't error when there's an unrecognized pass name
Arthur Eubanks via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 7 20:23:45 PST 2021
aeubanks created this revision.
aeubanks added reviewers: hoy, asbirlea, ychen.
Herald added subscribers: dexonsmith, hiraditya.
aeubanks requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
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.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D94283
Files:
llvm/include/llvm/IR/PassInstrumentation.h
llvm/lib/IR/PassInstrumentation.cpp
llvm/lib/Passes/PassBuilder.cpp
llvm/test/Other/print-before-after.ll
Index: llvm/test/Other/print-before-after.ll
===================================================================
--- llvm/test/Other/print-before-after.ll
+++ 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
Index: llvm/lib/Passes/PassBuilder.cpp
===================================================================
--- llvm/lib/Passes/PassBuilder.cpp
+++ llvm/lib/Passes/PassBuilder.cpp
@@ -459,14 +459,6 @@
#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);
- }
}
}
Index: llvm/lib/IR/PassInstrumentation.cpp
===================================================================
--- llvm/lib/IR/PassInstrumentation.cpp
+++ llvm/lib/IR/PassInstrumentation.cpp
@@ -22,14 +22,6 @@
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];
Index: llvm/include/llvm/IR/PassInstrumentation.h
===================================================================
--- llvm/include/llvm/IR/PassInstrumentation.h
+++ llvm/include/llvm/IR/PassInstrumentation.h
@@ -127,8 +127,6 @@
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;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D94283.315289.patch
Type: text/x-patch
Size: 3013 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210108/8ce8f682/attachment.bin>
More information about the llvm-commits
mailing list