diff --git a/mlir/tools/mlir-tblgen/PassGen.cpp b/mlir/tools/mlir-tblgen/PassGen.cpp --- a/mlir/tools/mlir-tblgen/PassGen.cpp +++ b/mlir/tools/mlir-tblgen/PassGen.cpp @@ -165,15 +165,23 @@ /// PassRegistry. static void emitRegistration(ArrayRef passes, raw_ostream &os) { os << "#ifdef GEN_PASS_REGISTRATION\n"; + auto passName = [](const llvm::Record *def) { + // Drop "Pass" at end of name. + // TODO: Update to make passes ending with Pass default to conform with how + // Ops, Types & Attr definition works. + StringRef ret(def->getName()); + ret.consume_back("Pass"); + return ret; + }; for (const Pass &pass : passes) { - os << llvm::formatv(passRegistrationCode, pass.getDef()->getName(), + os << llvm::formatv(passRegistrationCode, passName(pass.getDef()), pass.getArgument(), pass.getSummary(), pass.getConstructor()); } os << llvm::formatv(passGroupRegistrationCode, groupName); for (const Pass &pass : passes) - os << " register" << pass.getDef()->getName() << "Pass();\n"; + os << " register" << passName(pass.getDef()) << "Pass();\n"; os << "}\n"; os << "#undef GEN_PASS_REGISTRATION\n"; os << "#endif // GEN_PASS_REGISTRATION\n";