From afb30fcdf672d0d8dcdfe04d9d235b950112b622 Mon Sep 17 00:00:00 2001 From: Valentin Clement Date: Thu, 30 Sep 2021 16:26:29 +0200 Subject: [PATCH] [fir][NFC] Move fir.shape verifier to cpp file Move verifier code to the .cpp file. Follow up to https://reviews.llvm.org/D110626. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D110826 --- flang/include/flang/Optimizer/Dialect/FIROps.td | 9 +-------- flang/lib/Optimizer/Dialect/FIROps.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/flang/include/flang/Optimizer/Dialect/FIROps.td b/flang/include/flang/Optimizer/Dialect/FIROps.td index 4ae39c4..761bc99 100644 --- a/flang/include/flang/Optimizer/Dialect/FIROps.td +++ b/flang/include/flang/Optimizer/Dialect/FIROps.td @@ -1841,14 +1841,7 @@ def fir_ShapeOp : fir_Op<"shape", [NoSideEffect]> { operands attr-dict `:` functional-type(operands, results) }]; - let verifier = [{ - auto size = extents().size(); - auto shapeTy = getType().dyn_cast(); - assert(shapeTy && "must be a shape type"); - if (shapeTy.getRank() != size) - return emitOpError("shape type rank mismatch"); - return mlir::success(); - }]; + let verifier = "return ::verify(*this);"; let extraClassDeclaration = [{ std::vector getExtents() { diff --git a/flang/lib/Optimizer/Dialect/FIROps.cpp b/flang/lib/Optimizer/Dialect/FIROps.cpp index e3757b6..eca9f14 100644 --- a/flang/lib/Optimizer/Dialect/FIROps.cpp +++ b/flang/lib/Optimizer/Dialect/FIROps.cpp @@ -2607,6 +2607,19 @@ static mlir::LogicalResult verify(fir::SelectTypeOp &op) { } //===----------------------------------------------------------------------===// +// ShapeOp +//===----------------------------------------------------------------------===// + +static mlir::LogicalResult verify(fir::ShapeOp &op) { + auto size = op.extents().size(); + auto shapeTy = op.getType().dyn_cast(); + assert(shapeTy && "must be a shape type"); + if (shapeTy.getRank() != size) + return op.emitOpError("shape type rank mismatch"); + return mlir::success(); +} + +//===----------------------------------------------------------------------===// // ShapeShiftOp //===----------------------------------------------------------------------===// -- 2.7.4