[flang-commits] [flang] [mlir] Mark `mlir::Value::isa/dyn_cast/cast/...` member functions deprecated. (PR #89238)
Christian Sigg via flang-commits
flang-commits at lists.llvm.org
Fri Apr 19 07:11:49 PDT 2024
https://github.com/chsigg updated https://github.com/llvm/llvm-project/pull/89238
>From 117719553eb3352e2d2092008729a87088f69135 Mon Sep 17 00:00:00 2001
From: Christian Sigg <csigg at google.com>
Date: Thu, 18 Apr 2024 16:53:48 +0200
Subject: [PATCH] Mark mlir::Value::isa/dyn_cast/cast/... member functions
deprecated.
See https://mlir.llvm.org/deprecation and https://discourse.llvm.org/t/preferred-casting-style-going-forward
---
flang/lib/Optimizer/Analysis/AliasAnalysis.cpp | 2 +-
flang/lib/Optimizer/Dialect/FIROps.cpp | 4 ++--
flang/lib/Optimizer/Transforms/AffinePromotion.cpp | 4 ++--
flang/lib/Optimizer/Transforms/ArrayValueCopy.cpp | 4 ++--
mlir/include/mlir/IR/Value.h | 6 +++++-
5 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp b/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
index e144640081cbf3..c403b9effbfac6 100644
--- a/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
+++ b/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
@@ -29,7 +29,7 @@ using namespace mlir;
//===----------------------------------------------------------------------===//
static bool isDummyArgument(mlir::Value v) {
- auto blockArg{v.dyn_cast<mlir::BlockArgument>()};
+ auto blockArg{mlir::dyn_cast<mlir::BlockArgument>(v)};
if (!blockArg)
return false;
diff --git a/flang/lib/Optimizer/Dialect/FIROps.cpp b/flang/lib/Optimizer/Dialect/FIROps.cpp
index 5c24c95db427aa..cc08f29a98f022 100644
--- a/flang/lib/Optimizer/Dialect/FIROps.cpp
+++ b/flang/lib/Optimizer/Dialect/FIROps.cpp
@@ -2165,7 +2165,7 @@ mlir::ParseResult fir::DoLoopOp::parse(mlir::OpAsmParser &parser,
}
fir::DoLoopOp fir::getForInductionVarOwner(mlir::Value val) {
- auto ivArg = val.dyn_cast<mlir::BlockArgument>();
+ auto ivArg = mlir::dyn_cast<mlir::BlockArgument>(val);
if (!ivArg)
return {};
assert(ivArg.getOwner() && "unlinked block argument");
@@ -3777,7 +3777,7 @@ valueCheckFirAttributes(mlir::Value value,
if (auto loadOp = mlir::dyn_cast<fir::LoadOp>(definingOp))
value = loadOp.getMemref();
// If this is a function argument, look in the argument attributes.
- if (auto blockArg = value.dyn_cast<mlir::BlockArgument>()) {
+ if (auto blockArg = mlir::dyn_cast<mlir::BlockArgument>(value)) {
if (blockArg.getOwner() && blockArg.getOwner()->isEntryBlock())
if (auto funcOp = mlir::dyn_cast<mlir::func::FuncOp>(
blockArg.getOwner()->getParentOp()))
diff --git a/flang/lib/Optimizer/Transforms/AffinePromotion.cpp b/flang/lib/Optimizer/Transforms/AffinePromotion.cpp
index d1831cf1c200cc..64531cb1868efe 100644
--- a/flang/lib/Optimizer/Transforms/AffinePromotion.cpp
+++ b/flang/lib/Optimizer/Transforms/AffinePromotion.cpp
@@ -63,7 +63,7 @@ struct AffineFunctionAnalysis {
} // namespace
static bool analyzeCoordinate(mlir::Value coordinate, mlir::Operation *op) {
- if (auto blockArg = coordinate.dyn_cast<mlir::BlockArgument>()) {
+ if (auto blockArg = mlir::dyn_cast<mlir::BlockArgument>(coordinate)) {
if (isa<fir::DoLoopOp>(blockArg.getOwner()->getParentOp()))
return true;
LLVM_DEBUG(llvm::dbgs() << "AffineLoopAnalysis: array coordinate is not a "
@@ -224,7 +224,7 @@ struct AffineIfCondition {
if (auto op = value.getDefiningOp<mlir::arith::ConstantOp>())
if (auto intConstant = op.getValue().dyn_cast<IntegerAttr>())
return toAffineExpr(intConstant.getInt());
- if (auto blockArg = value.dyn_cast<mlir::BlockArgument>()) {
+ if (auto blockArg = mlir::dyn_cast<mlir::BlockArgument>(value)) {
affineArgs.push_back(value);
if (isa<fir::DoLoopOp>(blockArg.getOwner()->getParentOp()) ||
isa<mlir::affine::AffineForOp>(blockArg.getOwner()->getParentOp()))
diff --git a/flang/lib/Optimizer/Transforms/ArrayValueCopy.cpp b/flang/lib/Optimizer/Transforms/ArrayValueCopy.cpp
index 18ca5711bfea89..a08d58383d3a91 100644
--- a/flang/lib/Optimizer/Transforms/ArrayValueCopy.cpp
+++ b/flang/lib/Optimizer/Transforms/ArrayValueCopy.cpp
@@ -187,7 +187,7 @@ class ReachCollector {
LLVM_DEBUG(llvm::dbgs() << "popset: " << *op << '\n');
auto popFn = [&](auto rop) {
assert(val && "op must have a result value");
- auto resNum = val.cast<mlir::OpResult>().getResultNumber();
+ auto resNum = mlir::cast<mlir::OpResult>(val).getResultNumber();
llvm::SmallVector<mlir::Value> results;
rop.resultToSourceOps(results, resNum);
for (auto u : results)
@@ -296,7 +296,7 @@ class ReachCollector {
visited.insert(val);
// Process a block argument.
- if (auto ba = val.dyn_cast<mlir::BlockArgument>()) {
+ if (auto ba = mlir::dyn_cast<mlir::BlockArgument>(val)) {
collectArrayMentionFrom(ba);
return;
}
diff --git a/mlir/include/mlir/IR/Value.h b/mlir/include/mlir/IR/Value.h
index a74d0faa1dfc4b..cdbc6cc374368c 100644
--- a/mlir/include/mlir/IR/Value.h
+++ b/mlir/include/mlir/IR/Value.h
@@ -98,21 +98,25 @@ class Value {
constexpr Value(detail::ValueImpl *impl = nullptr) : impl(impl) {}
template <typename U>
+ [[deprecated("Use isa<U>() instead")]]
bool isa() const {
return llvm::isa<U>(*this);
}
template <typename U>
+ [[deprecated("Use dyn_cast<U>() instead")]]
U dyn_cast() const {
return llvm::dyn_cast<U>(*this);
}
template <typename U>
+ [[deprecated("Use dyn_cast_or_null<U>() instead")]]
U dyn_cast_or_null() const {
- return llvm::dyn_cast_if_present<U>(*this);
+ return llvm::dyn_cast_or_null<U>(*this);
}
template <typename U>
+ [[deprecated("Use cast<U>() instead")]]
U cast() const {
return llvm::cast<U>(*this);
}
More information about the flang-commits
mailing list