forked from OSchip/llvm-project
[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
This commit is contained in:
parent
0ebc1fb29f
commit
69cf735062
|
@ -127,8 +127,6 @@ public:
|
||||||
void addClassToPassName(StringRef ClassName, StringRef PassName);
|
void addClassToPassName(StringRef ClassName, StringRef PassName);
|
||||||
/// Get the pass name for a given pass class name.
|
/// Get the pass name for a given pass class name.
|
||||||
StringRef getPassNameForClassName(StringRef ClassName);
|
StringRef getPassNameForClassName(StringRef ClassName);
|
||||||
/// Whether or not the class to pass name map contains the pass name.
|
|
||||||
bool hasPassName(StringRef PassName);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class PassInstrumentation;
|
friend class PassInstrumentation;
|
||||||
|
|
|
@ -22,14 +22,6 @@ void PassInstrumentationCallbacks::addClassToPassName(StringRef ClassName,
|
||||||
ClassToPassName[ClassName] = PassName.str();
|
ClassToPassName[ClassName] = PassName.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PassInstrumentationCallbacks::hasPassName(StringRef PassName) {
|
|
||||||
for (const auto &E : ClassToPassName) {
|
|
||||||
if (E.getValue() == PassName)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
StringRef
|
StringRef
|
||||||
PassInstrumentationCallbacks::getPassNameForClassName(StringRef ClassName) {
|
PassInstrumentationCallbacks::getPassNameForClassName(StringRef ClassName) {
|
||||||
return ClassToPassName[ClassName];
|
return ClassToPassName[ClassName];
|
||||||
|
|
|
@ -459,14 +459,6 @@ PassBuilder::PassBuilder(bool DebugLogging, TargetMachine *TM,
|
||||||
#define CGSCC_ANALYSIS(NAME, CREATE_PASS) \
|
#define CGSCC_ANALYSIS(NAME, CREATE_PASS) \
|
||||||
PIC->addClassToPassName(decltype(CREATE_PASS)::name(), NAME);
|
PIC->addClassToPassName(decltype(CREATE_PASS)::name(), NAME);
|
||||||
#include "PassRegistry.def"
|
#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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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: 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-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-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' -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
|
; RUN: opt < %s -disable-output -passes='no-op-module,no-op-function' -print-before=no-op-module 2>&1 | FileCheck %s --check-prefix=ONCE
|
||||||
|
|
Loading…
Reference in New Issue