[PATCH] D110828: [fir][NFC] Move parser/printer for fir.global_len
Valentin Clement via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 30 06:35:54 PDT 2021
clementval created this revision.
clementval added reviewers: jeanPerier, svedanayagam, sscalpone, kiranchandramohan, jdoerfert, schweitz, pmccormick, mehdi_amini, rovka, AlexisPerry.
Herald added a project: Flang.
clementval requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Move parser and printer to the .cpp file.
Follow up to https://reviews.llvm.org/D110626.
This patch is part of the upstreaming effort from fir-dev branch.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D110828
Files:
flang/include/flang/Optimizer/Dialect/FIROps.td
flang/lib/Optimizer/Dialect/FIROps.cpp
Index: flang/lib/Optimizer/Dialect/FIROps.cpp
===================================================================
--- flang/lib/Optimizer/Dialect/FIROps.cpp
+++ flang/lib/Optimizer/Dialect/FIROps.cpp
@@ -1213,6 +1213,35 @@
return mlir::ArrayAttr::get(ctxt, attrs);
}
+//===----------------------------------------------------------------------===//
+// GlobalLenOp
+//===----------------------------------------------------------------------===//
+
+static mlir::ParseResult parseGlobalLenOp(mlir::OpAsmParser &parser,
+ mlir::OperationState &result) {
+ llvm::StringRef fieldName;
+ if (failed(parser.parseOptionalKeyword(&fieldName))) {
+ mlir::StringAttr fieldAttr;
+ if (parser.parseAttribute(fieldAttr, fir::GlobalLenOp::lenParamAttrName(),
+ result.attributes))
+ return mlir::failure();
+ } else {
+ result.addAttribute(fir::GlobalLenOp::lenParamAttrName(),
+ parser.getBuilder().getStringAttr(fieldName));
+ }
+ mlir::IntegerAttr constant;
+ if (parser.parseComma() ||
+ parser.parseAttribute(constant, fir::GlobalLenOp::intAttrName(),
+ result.attributes))
+ return mlir::failure();
+ return mlir::success();
+}
+
+static void print(mlir::OpAsmPrinter &p, fir::GlobalLenOp &op) {
+ p << ' ' << op.getOperation()->getAttr(fir::GlobalLenOp::lenParamAttrName())
+ << ", " << op.getOperation()->getAttr(fir::GlobalLenOp::intAttrName());
+}
+
//===----------------------------------------------------------------------===//
// ExtractValueOp
//===----------------------------------------------------------------------===//
Index: flang/include/flang/Optimizer/Dialect/FIROps.td
===================================================================
--- flang/include/flang/Optimizer/Dialect/FIROps.td
+++ flang/include/flang/Optimizer/Dialect/FIROps.td
@@ -2929,28 +2929,9 @@
let arguments = (ins StrAttr:$lenparam, APIntAttr:$intval);
- let parser = [{
- llvm::StringRef fieldName;
- if (failed(parser.parseOptionalKeyword(&fieldName))) {
- mlir::StringAttr fieldAttr;
- if (parser.parseAttribute(fieldAttr, lenParamAttrName(),
- result.attributes))
- return mlir::failure();
- } else {
- result.addAttribute(lenParamAttrName(),
- parser.getBuilder().getStringAttr(fieldName));
- }
- mlir::IntegerAttr constant;
- if (parser.parseComma() ||
- parser.parseAttribute(constant, intAttrName(), result.attributes))
- return mlir::failure();
- return mlir::success();
- }];
+ let parser = "return parseGlobalLenOp(parser, result);";
- let printer = [{
- p << ' ' << (*this)->getAttr(lenParamAttrName())
- << ", " << (*this)->getAttr(intAttrName());
- }];
+ let printer = "::print(p, *this);";
let extraClassDeclaration = [{
static constexpr llvm::StringRef lenParamAttrName() { return "lenparam"; }
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D110828.376186.patch
Type: text/x-patch
Size: 2985 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210930/2c8f2716/attachment.bin>
More information about the llvm-commits
mailing list