[PATCH] D110929: [fir][NFC] Move fir.global printer to cpp file
Valentin Clement via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 1 12:14:51 PDT 2021
This revision was automatically updated to reflect the committed changes.
Closed by commit rG3da95b68cd1e: [fir][NFC] Move fir.global printer to cpp file (authored by clementval).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D110929/new/
https://reviews.llvm.org/D110929
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
@@ -1175,6 +1175,24 @@
return mlir::success();
}
+static void print(mlir::OpAsmPrinter &p, fir::GlobalOp &op) {
+ if (op.linkName().hasValue())
+ p << ' ' << op.linkName().getValue();
+ p << ' ';
+ p.printAttributeWithoutType(
+ op.getOperation()->getAttr(fir::GlobalOp::symbolAttrName()));
+ if (auto val = op.getValueOrNull())
+ p << '(' << val << ')';
+ if (op.getOperation()->getAttr(fir::GlobalOp::getConstantAttrName()))
+ p << " constant";
+ p << " : ";
+ p.printType(op.getType());
+ if (op.hasInitializationBody())
+ p.printRegion(op.getOperation()->getRegion(0),
+ /*printEntryBlockArgs=*/false,
+ /*printBlockTerminators=*/true);
+}
+
void fir::GlobalOp::appendInitialValue(mlir::Operation *op) {
getBlock().getOperations().push_back(op);
}
Index: flang/include/flang/Optimizer/Dialect/FIROps.td
===================================================================
--- flang/include/flang/Optimizer/Dialect/FIROps.td
+++ flang/include/flang/Optimizer/Dialect/FIROps.td
@@ -2666,21 +2666,7 @@
let parser = "return parseGlobalOp(parser, result);";
- let printer = [{
- if (linkName().hasValue())
- p << ' ' << linkName().getValue();
- p << ' ';
- p.printAttributeWithoutType((*this)->getAttr(symbolAttrName()));
- if (auto val = getValueOrNull())
- p << '(' << val << ')';
- if (constantAttr())
- p << " constant";
- p << " : ";
- p.printType(getType());
- if (hasInitializationBody())
- p.printRegion((*this)->getRegion(0), /*printEntryBlockArgs=*/false,
- /*printBlockTerminators=*/true);
- }];
+ let printer = "::print(p, *this);";
let skipDefaultBuilders = 1;
let builders = [
@@ -2706,6 +2692,9 @@
let extraClassDeclaration = [{
static constexpr llvm::StringRef symbolAttrName() { return "symref"; }
+ static constexpr llvm::StringRef getConstantAttrName() {
+ return "constant";
+ }
static constexpr llvm::StringRef linkageAttrName() { return "linkName"; }
/// The printable type of the global
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D110929.376598.patch
Type: text/x-patch
Size: 2292 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211001/4ac342a8/attachment.bin>
More information about the llvm-commits
mailing list