[Mlir-commits] [mlir] [mlir][tblgen] Add custom parsing and printing within struct (PR #133939)
Jorn Tuyls
llvmlistbot at llvm.org
Wed Apr 9 05:45:58 PDT 2025
================
@@ -851,16 +897,20 @@ void DefFormat::genCommaSeparatedPrinter(
void DefFormat::genParamsPrinter(ParamsDirective *el, FmtContext &ctx,
MethodBody &os) {
- genCommaSeparatedPrinter(llvm::to_vector(el->getParams()), ctx, os,
- [&](ParameterElement *param) {});
+ SmallVector<FormatElement *> args = llvm::map_to_vector(
+ el->getElements(), [](ParameterElement *param) -> FormatElement * {
+ return reinterpret_cast<ParameterElement *>(param);
+ });
+ genCommaSeparatedPrinter(args, ctx, os, [&](FormatElement *param) {});
}
void DefFormat::genStructPrinter(StructDirective *el, FmtContext &ctx,
MethodBody &os) {
- genCommaSeparatedPrinter(
- llvm::to_vector(el->getParams()), ctx, os, [&](ParameterElement *param) {
- os << tgfmt("$_printer << \"$0 = \";\n", &ctx, param->getName());
- });
+ genCommaSeparatedPrinter(el->getElements(), ctx, os, [&](FormatElement *arg) {
+ if (ParameterElement *param = getStructParameterElement(arg)) {
----------------
jtuyls wrote:
See answer above, `param` should never be a nullptr
https://github.com/llvm/llvm-project/pull/133939
More information about the Mlir-commits
mailing list