Valentin Clement a89b04805a
[flang][NFC] Use prefixed accessors for fircg dialect
The raw accessor is going away soon so switch to prefixed accessors in the
fircg dialect. The main dialect was switched some months ago.

https://github.com/llvm/llvm-project/issues/58090

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D135061
2022-10-03 11:02:43 +02:00

65 lines
2.0 KiB
C++

//===-- CGOps.cpp -- FIR codegen operations -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// Coding style: https://mlir.llvm.org/getting_started/DeveloperGuide/
//
//===----------------------------------------------------------------------===//
#include "CGOps.h"
#include "flang/Optimizer/Dialect/FIRDialect.h"
#include "flang/Optimizer/Dialect/FIROps.h"
#include "flang/Optimizer/Dialect/FIRType.h"
/// FIR codegen dialect constructor.
fir::FIRCodeGenDialect::FIRCodeGenDialect(mlir::MLIRContext *ctx)
: mlir::Dialect("fircg", ctx, mlir::TypeID::get<FIRCodeGenDialect>()) {
addOperations<
#define GET_OP_LIST
#include "flang/Optimizer/CodeGen/CGOps.cpp.inc"
>();
}
// anchor the class vtable to this compilation unit
fir::FIRCodeGenDialect::~FIRCodeGenDialect() {
// do nothing
}
#define GET_OP_CLASSES
#include "flang/Optimizer/CodeGen/CGOps.cpp.inc"
unsigned fir::cg::XEmboxOp::getOutRank() {
if (getSlice().empty())
return getRank();
auto outRank = fir::SliceOp::getOutputRank(getSlice());
assert(outRank >= 1);
return outRank;
}
unsigned fir::cg::XReboxOp::getOutRank() {
if (auto seqTy =
fir::dyn_cast_ptrOrBoxEleTy(getType()).dyn_cast<fir::SequenceType>())
return seqTy.getDimension();
return 0;
}
unsigned fir::cg::XReboxOp::getRank() {
if (auto seqTy = fir::dyn_cast_ptrOrBoxEleTy(getBox().getType())
.dyn_cast<fir::SequenceType>())
return seqTy.getDimension();
return 0;
}
unsigned fir::cg::XArrayCoorOp::getRank() {
auto memrefTy = getMemref().getType();
if (memrefTy.isa<fir::BoxType>())
if (auto seqty =
fir::dyn_cast_ptrOrBoxEleTy(memrefTy).dyn_cast<fir::SequenceType>())
return seqty.getDimension();
return getShape().size();
}