[flang-commits] [flang] 3da95b6 - [fir][NFC] Move fir.global printer to cpp file
Valentin Clement via flang-commits
flang-commits at lists.llvm.org
Fri Oct 1 12:14:47 PDT 2021
Author: Valentin Clement
Date: 2021-10-01T21:14:41+02:00
New Revision: 3da95b68cd1e0088d955c129f61a19a8551366c4
URL: https://github.com/llvm/llvm-project/commit/3da95b68cd1e0088d955c129f61a19a8551366c4
DIFF: https://github.com/llvm/llvm-project/commit/3da95b68cd1e0088d955c129f61a19a8551366c4.diff
LOG: [fir][NFC] Move fir.global printer to cpp file
All big enough parser, printer and verifier are moved to the cpp file.
This is one of the last one to be moved.
This patch is part of the upstreaming effort from fir-dev branch.
Reviewed By: kiranchandramohan
Differential Revision: https://reviews.llvm.org/D110929
Added:
Modified:
flang/include/flang/Optimizer/Dialect/FIROps.td
flang/lib/Optimizer/Dialect/FIROps.cpp
Removed:
################################################################################
diff --git a/flang/include/flang/Optimizer/Dialect/FIROps.td b/flang/include/flang/Optimizer/Dialect/FIROps.td
index 264b8963d6e9..c2e42adf39eb 100644
--- a/flang/include/flang/Optimizer/Dialect/FIROps.td
+++ b/flang/include/flang/Optimizer/Dialect/FIROps.td
@@ -2666,21 +2666,7 @@ def fir_GlobalOp : fir_Op<"global", [IsolatedFromAbove, Symbol]> {
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 @@ def fir_GlobalOp : fir_Op<"global", [IsolatedFromAbove, Symbol]> {
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
diff --git a/flang/lib/Optimizer/Dialect/FIROps.cpp b/flang/lib/Optimizer/Dialect/FIROps.cpp
index 369f8e36ce9f..ed13f93f861b 100644
--- a/flang/lib/Optimizer/Dialect/FIROps.cpp
+++ b/flang/lib/Optimizer/Dialect/FIROps.cpp
@@ -1175,6 +1175,24 @@ static ParseResult parseGlobalOp(OpAsmParser &parser, OperationState &result) {
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);
}
More information about the flang-commits
mailing list