[Mlir-commits] [mlir] [mlir][affine] cleanup deprecated T.cast style functions (PR #71269)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Nov 8 07:12:57 PST 2023
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir-scf
Author: long.chen (lipracer)
<details>
<summary>Changes</summary>
detail see the docment: https://mlir.llvm.org/deprecation/
Not all changes are made manually, most of them are made through a clang tool I wrote.
---
Patch is 156.88 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/71269.diff
58 Files Affected:
- (modified) mlir/include/mlir/IR/AffineExpr.h (+42-10)
- (modified) mlir/include/mlir/IR/AffineExprVisitor.h (+16-16)
- (modified) mlir/include/mlir/IR/AffineMap.h (+4-4)
- (modified) mlir/include/mlir/Interfaces/VectorInterfaces.td (+4-4)
- (modified) mlir/lib/Analysis/FlatLinearValueConstraints.cpp (+1-1)
- (modified) mlir/lib/CAPI/IR/AffineExpr.cpp (+9-9)
- (modified) mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp (+1-1)
- (modified) mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp (+1-1)
- (modified) mlir/lib/Conversion/VectorToGPU/VectorToGPU.cpp (+4-5)
- (modified) mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp (+2-2)
- (modified) mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp (+2-2)
- (modified) mlir/lib/Dialect/Affine/Analysis/LoopAnalysis.cpp (+4-4)
- (modified) mlir/lib/Dialect/Affine/Analysis/Utils.cpp (+7-7)
- (modified) mlir/lib/Dialect/Affine/IR/AffineOps.cpp (+20-20)
- (modified) mlir/lib/Dialect/Affine/Transforms/DecomposeAffineOps.cpp (+4-4)
- (modified) mlir/lib/Dialect/Affine/Transforms/ReifyValueBounds.cpp (+2-2)
- (modified) mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp (+1-1)
- (modified) mlir/lib/Dialect/Affine/Utils/Utils.cpp (+13-14)
- (modified) mlir/lib/Dialect/Arith/Transforms/ReifyValueBounds.cpp (+10-10)
- (modified) mlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp (+1-1)
- (modified) mlir/lib/Dialect/Linalg/IR/LinalgInterfaces.cpp (+11-12)
- (modified) mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp (+1-1)
- (modified) mlir/lib/Dialect/Linalg/IR/ValueBoundsOpInterfaceImpl.cpp (+4-4)
- (modified) mlir/lib/Dialect/Linalg/Transforms/BubbleUpExtractSlice.cpp (+1-1)
- (modified) mlir/lib/Dialect/Linalg/Transforms/ConstantFold.cpp (+1-1)
- (modified) mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp (+8-8)
- (modified) mlir/lib/Dialect/Linalg/Transforms/DecomposeLinalgOps.cpp (+1-1)
- (modified) mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp (+3-3)
- (modified) mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp (+11-13)
- (modified) mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp (+3-3)
- (modified) mlir/lib/Dialect/Linalg/Transforms/Loops.cpp (+2-2)
- (modified) mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp (+1-1)
- (modified) mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp (+1-1)
- (modified) mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp (+1-2)
- (modified) mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp (+1-1)
- (modified) mlir/lib/Dialect/Linalg/Utils/Utils.cpp (+1-1)
- (modified) mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp (+1-1)
- (modified) mlir/lib/Dialect/Mesh/Interfaces/ShardingInterface.cpp (+6-6)
- (modified) mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp (+2-2)
- (modified) mlir/lib/Dialect/SCF/Transforms/LoopSpecialization.cpp (+2-2)
- (modified) mlir/lib/Dialect/SparseTensor/IR/Detail/DimLvlMap.cpp (+12-12)
- (modified) mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp (+14-13)
- (modified) mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.cpp (+13-13)
- (modified) mlir/lib/Dialect/SparseTensor/Transforms/LoopEmitter.cpp (+5-5)
- (modified) mlir/lib/Dialect/SparseTensor/Transforms/SparseBufferRewriting.cpp (+2-2)
- (modified) mlir/lib/Dialect/SparseTensor/Transforms/SparseReinterpretMap.cpp (+1-1)
- (modified) mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp (+24-24)
- (modified) mlir/lib/Dialect/Tensor/IR/TensorInferTypeOpInterfaceImpl.cpp (+10-14)
- (modified) mlir/lib/Dialect/Utils/ReshapeOpsUtils.cpp (+3-3)
- (modified) mlir/lib/Dialect/Vector/IR/VectorOps.cpp (+10-10)
- (modified) mlir/lib/Dialect/Vector/Transforms/LowerVectorTransfer.cpp (+3-3)
- (modified) mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp (+6-6)
- (modified) mlir/lib/Dialect/Vector/Transforms/VectorUnroll.cpp (+2-2)
- (modified) mlir/lib/IR/AffineExpr.cpp (+88-88)
- (modified) mlir/lib/IR/AffineMap.cpp (+40-27)
- (modified) mlir/lib/IR/AsmPrinter.cpp (+8-8)
- (modified) mlir/lib/IR/BuiltinTypes.cpp (+6-6)
- (modified) mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp (+1-1)
``````````diff
diff --git a/mlir/include/mlir/IR/AffineExpr.h b/mlir/include/mlir/IR/AffineExpr.h
index 69e02c94ef2708d..40e9d28ce5d3a01 100644
--- a/mlir/include/mlir/IR/AffineExpr.h
+++ b/mlir/include/mlir/IR/AffineExpr.h
@@ -82,13 +82,17 @@ class AffineExpr {
bool operator!() const { return expr == nullptr; }
template <typename U>
- constexpr bool isa() const;
+ [[deprecated("Use llvm::isa<U>() instead")]] constexpr bool isa() const;
+
template <typename U>
- U dyn_cast() const;
+ [[deprecated("Use llvm::dyn_cast<U>() instead")]] U dyn_cast() const;
+
template <typename U>
- U dyn_cast_or_null() const;
+ [[deprecated("Use llvm::dyn_cast_or_null<U>() instead")]] U
+ dyn_cast_or_null() const;
+
template <typename U>
- U cast() const;
+ [[deprecated("Use llvm::cast<U>() instead")]] U cast() const;
MLIRContext *getContext() const;
@@ -194,6 +198,8 @@ class AffineExpr {
reinterpret_cast<ImplType *>(const_cast<void *>(pointer)));
}
+ ImplType *getImpl() const { return expr; }
+
protected:
ImplType *expr{nullptr};
};
@@ -281,18 +287,15 @@ constexpr bool AffineExpr::isa() const {
}
template <typename U>
U AffineExpr::dyn_cast() const {
- if (isa<U>())
- return U(expr);
- return U(nullptr);
+ return llvm::dyn_cast<U>(*this);
}
template <typename U>
U AffineExpr::dyn_cast_or_null() const {
- return (!*this || !isa<U>()) ? U(nullptr) : U(expr);
+ return llvm::dyn_cast_or_null<U>(*this);
}
template <typename U>
U AffineExpr::cast() const {
- assert(isa<U>());
- return U(expr);
+ return llvm::cast<U>(*this);
}
/// Simplify an affine expression by flattening and some amount of simple
@@ -390,6 +393,35 @@ struct DenseMapInfo<mlir::AffineExpr> {
}
};
+/// Add support for llvm style casts. We provide a cast between To and From if
+/// From is mlir::AffineExpr or derives from it.
+template <typename To, typename From>
+struct CastInfo<To, From,
+ std::enable_if_t<std::is_same_v<mlir::AffineExpr,
+ std::remove_const_t<From>> ||
+ std::is_base_of_v<mlir::AffineExpr, From>>>
+ : NullableValueCastFailed<To>,
+ DefaultDoCastIfPossible<To, From, CastInfo<To, From>> {
+
+ static inline bool isPossible(mlir::AffineExpr expr) {
+ /// Return a constant true instead of a dynamic true when casting to self or
+ /// up the hierarchy.
+ if constexpr (std::is_base_of_v<To, From>) {
+ return true;
+ } else {
+ if constexpr (std::is_same_v<To, ::mlir::AffineBinaryOpExpr>)
+ return expr.getKind() <= ::mlir::AffineExprKind::LAST_AFFINE_BINARY_OP;
+ if constexpr (std::is_same_v<To, ::mlir::AffineDimExpr>)
+ return expr.getKind() == ::mlir::AffineExprKind::DimId;
+ if constexpr (std::is_same_v<To, ::mlir::AffineSymbolExpr>)
+ return expr.getKind() == ::mlir::AffineExprKind::SymbolId;
+ if constexpr (std::is_same_v<To, ::mlir::AffineConstantExpr>)
+ return expr.getKind() == ::mlir::AffineExprKind::Constant;
+ }
+ }
+ static inline To doCast(mlir::AffineExpr expr) { return To(expr.getImpl()); }
+};
+
} // namespace llvm
#endif // MLIR_IR_AFFINEEXPR_H
diff --git a/mlir/include/mlir/IR/AffineExprVisitor.h b/mlir/include/mlir/IR/AffineExprVisitor.h
index f6216614c2238e1..382db22dce463e5 100644
--- a/mlir/include/mlir/IR/AffineExprVisitor.h
+++ b/mlir/include/mlir/IR/AffineExprVisitor.h
@@ -77,39 +77,39 @@ class AffineExprVisitor {
"Must instantiate with a derived type of AffineExprVisitor");
switch (expr.getKind()) {
case AffineExprKind::Add: {
- auto binOpExpr = expr.cast<AffineBinaryOpExpr>();
+ auto binOpExpr = cast<AffineBinaryOpExpr>(expr);
walkOperandsPostOrder(binOpExpr);
return static_cast<SubClass *>(this)->visitAddExpr(binOpExpr);
}
case AffineExprKind::Mul: {
- auto binOpExpr = expr.cast<AffineBinaryOpExpr>();
+ auto binOpExpr = cast<AffineBinaryOpExpr>(expr);
walkOperandsPostOrder(binOpExpr);
return static_cast<SubClass *>(this)->visitMulExpr(binOpExpr);
}
case AffineExprKind::Mod: {
- auto binOpExpr = expr.cast<AffineBinaryOpExpr>();
+ auto binOpExpr = cast<AffineBinaryOpExpr>(expr);
walkOperandsPostOrder(binOpExpr);
return static_cast<SubClass *>(this)->visitModExpr(binOpExpr);
}
case AffineExprKind::FloorDiv: {
- auto binOpExpr = expr.cast<AffineBinaryOpExpr>();
+ auto binOpExpr = cast<AffineBinaryOpExpr>(expr);
walkOperandsPostOrder(binOpExpr);
return static_cast<SubClass *>(this)->visitFloorDivExpr(binOpExpr);
}
case AffineExprKind::CeilDiv: {
- auto binOpExpr = expr.cast<AffineBinaryOpExpr>();
+ auto binOpExpr = cast<AffineBinaryOpExpr>(expr);
walkOperandsPostOrder(binOpExpr);
return static_cast<SubClass *>(this)->visitCeilDivExpr(binOpExpr);
}
case AffineExprKind::Constant:
return static_cast<SubClass *>(this)->visitConstantExpr(
- expr.cast<AffineConstantExpr>());
+ cast<AffineConstantExpr>(expr));
case AffineExprKind::DimId:
return static_cast<SubClass *>(this)->visitDimExpr(
- expr.cast<AffineDimExpr>());
+ cast<AffineDimExpr>(expr));
case AffineExprKind::SymbolId:
return static_cast<SubClass *>(this)->visitSymbolExpr(
- expr.cast<AffineSymbolExpr>());
+ cast<AffineSymbolExpr>(expr));
}
}
@@ -119,34 +119,34 @@ class AffineExprVisitor {
"Must instantiate with a derived type of AffineExprVisitor");
switch (expr.getKind()) {
case AffineExprKind::Add: {
- auto binOpExpr = expr.cast<AffineBinaryOpExpr>();
+ auto binOpExpr = cast<AffineBinaryOpExpr>(expr);
return static_cast<SubClass *>(this)->visitAddExpr(binOpExpr);
}
case AffineExprKind::Mul: {
- auto binOpExpr = expr.cast<AffineBinaryOpExpr>();
+ auto binOpExpr = cast<AffineBinaryOpExpr>(expr);
return static_cast<SubClass *>(this)->visitMulExpr(binOpExpr);
}
case AffineExprKind::Mod: {
- auto binOpExpr = expr.cast<AffineBinaryOpExpr>();
+ auto binOpExpr = cast<AffineBinaryOpExpr>(expr);
return static_cast<SubClass *>(this)->visitModExpr(binOpExpr);
}
case AffineExprKind::FloorDiv: {
- auto binOpExpr = expr.cast<AffineBinaryOpExpr>();
+ auto binOpExpr = cast<AffineBinaryOpExpr>(expr);
return static_cast<SubClass *>(this)->visitFloorDivExpr(binOpExpr);
}
case AffineExprKind::CeilDiv: {
- auto binOpExpr = expr.cast<AffineBinaryOpExpr>();
+ auto binOpExpr = cast<AffineBinaryOpExpr>(expr);
return static_cast<SubClass *>(this)->visitCeilDivExpr(binOpExpr);
}
case AffineExprKind::Constant:
return static_cast<SubClass *>(this)->visitConstantExpr(
- expr.cast<AffineConstantExpr>());
+ cast<AffineConstantExpr>(expr));
case AffineExprKind::DimId:
return static_cast<SubClass *>(this)->visitDimExpr(
- expr.cast<AffineDimExpr>());
+ cast<AffineDimExpr>(expr));
case AffineExprKind::SymbolId:
return static_cast<SubClass *>(this)->visitSymbolExpr(
- expr.cast<AffineSymbolExpr>());
+ cast<AffineSymbolExpr>(expr));
}
llvm_unreachable("Unknown AffineExpr");
}
diff --git a/mlir/include/mlir/IR/AffineMap.h b/mlir/include/mlir/IR/AffineMap.h
index f691a3daf8889c5..713aef767edf669 100644
--- a/mlir/include/mlir/IR/AffineMap.h
+++ b/mlir/include/mlir/IR/AffineMap.h
@@ -648,9 +648,9 @@ SmallVector<T> applyPermutationMap(AffineMap map, llvm::ArrayRef<T> source) {
SmallVector<T> result;
result.reserve(map.getNumResults());
for (AffineExpr expr : map.getResults()) {
- if (auto dimExpr = expr.dyn_cast<AffineDimExpr>()) {
+ if (auto dimExpr = dyn_cast<AffineDimExpr>(expr)) {
result.push_back(source[dimExpr.getPosition()]);
- } else if (auto constExpr = expr.dyn_cast<AffineConstantExpr>()) {
+ } else if (auto constExpr = dyn_cast<AffineConstantExpr>(expr)) {
assert(constExpr.getValue() == 0 &&
"Unexpected constant in projected permutation map");
result.push_back(0);
@@ -669,9 +669,9 @@ static void getMaxDimAndSymbol(ArrayRef<AffineExprContainer> exprsList,
for (const auto &exprs : exprsList) {
for (auto expr : exprs) {
expr.walk([&maxDim, &maxSym](AffineExpr e) {
- if (auto d = e.dyn_cast<AffineDimExpr>())
+ if (auto d = dyn_cast<AffineDimExpr>(e))
maxDim = std::max(maxDim, static_cast<int64_t>(d.getPosition()));
- if (auto s = e.dyn_cast<AffineSymbolExpr>())
+ if (auto s = dyn_cast<AffineSymbolExpr>(e))
maxSym = std::max(maxSym, static_cast<int64_t>(s.getPosition()));
});
}
diff --git a/mlir/include/mlir/Interfaces/VectorInterfaces.td b/mlir/include/mlir/Interfaces/VectorInterfaces.td
index 026faf269f368de..66b1b0b70696e8e 100644
--- a/mlir/include/mlir/Interfaces/VectorInterfaces.td
+++ b/mlir/include/mlir/Interfaces/VectorInterfaces.td
@@ -120,8 +120,8 @@ def VectorTransferOpInterface : OpInterface<"VectorTransferOpInterface"> {
/*methodBody=*/"",
/*defaultImplementation=*/[{
auto expr = $_op.getPermutationMap().getResult(idx);
- return expr.template isa<::mlir::AffineConstantExpr>() &&
- expr.template dyn_cast<::mlir::AffineConstantExpr>().getValue() == 0;
+ return ::llvm::isa<::mlir::AffineConstantExpr>(expr) &&
+ ::llvm::dyn_cast<::mlir::AffineConstantExpr>(expr).getValue() == 0;
}]
>,
InterfaceMethod<
@@ -278,9 +278,9 @@ def VectorTransferOpInterface : OpInterface<"VectorTransferOpInterface"> {
AffineExpr dim = std::get<0>(vecDims);
int64_t size = std::get<1>(vecDims);
// Skip broadcast.
- if (dim.isa<AffineConstantExpr>())
+ if (isa<AffineConstantExpr>(dim))
continue;
- dimSizes[dim.cast<AffineDimExpr>().getPosition()] = size;
+ dimSizes[cast<AffineDimExpr>(dim).getPosition()] = size;
}
return dimSizes;
}]
diff --git a/mlir/lib/Analysis/FlatLinearValueConstraints.cpp b/mlir/lib/Analysis/FlatLinearValueConstraints.cpp
index 382d05f3b2d4851..b838d461c398c83 100644
--- a/mlir/lib/Analysis/FlatLinearValueConstraints.cpp
+++ b/mlir/lib/Analysis/FlatLinearValueConstraints.cpp
@@ -305,7 +305,7 @@ static bool detectAsMod(const FlatLinearConstraints &cst, unsigned pos,
// `var_n`), we can proceed.
// TODO: Handle AffineSymbolExpr as well. There is no reason to restrict it
// to dims themselves.
- auto dimExpr = dividendExpr.dyn_cast<AffineDimExpr>();
+ auto dimExpr = dyn_cast<AffineDimExpr>(dividendExpr);
if (!dimExpr)
continue;
diff --git a/mlir/lib/CAPI/IR/AffineExpr.cpp b/mlir/lib/CAPI/IR/AffineExpr.cpp
index 5b25ab5337e2f77..6e3328b65cb08d3 100644
--- a/mlir/lib/CAPI/IR/AffineExpr.cpp
+++ b/mlir/lib/CAPI/IR/AffineExpr.cpp
@@ -66,7 +66,7 @@ MlirAffineExpr mlirAffineExprCompose(MlirAffineExpr affineExpr,
//===----------------------------------------------------------------------===//
bool mlirAffineExprIsADim(MlirAffineExpr affineExpr) {
- return unwrap(affineExpr).isa<AffineDimExpr>();
+ return isa<AffineDimExpr>(unwrap(affineExpr));
}
MlirAffineExpr mlirAffineDimExprGet(MlirContext ctx, intptr_t position) {
@@ -74,7 +74,7 @@ MlirAffineExpr mlirAffineDimExprGet(MlirContext ctx, intptr_t position) {
}
intptr_t mlirAffineDimExprGetPosition(MlirAffineExpr affineExpr) {
- return unwrap(affineExpr).cast<AffineDimExpr>().getPosition();
+ return cast<AffineDimExpr>(unwrap(affineExpr)).getPosition();
}
//===----------------------------------------------------------------------===//
@@ -82,7 +82,7 @@ intptr_t mlirAffineDimExprGetPosition(MlirAffineExpr affineExpr) {
//===----------------------------------------------------------------------===//
bool mlirAffineExprIsASymbol(MlirAffineExpr affineExpr) {
- return unwrap(affineExpr).isa<AffineSymbolExpr>();
+ return isa<AffineSymbolExpr>(unwrap(affineExpr));
}
MlirAffineExpr mlirAffineSymbolExprGet(MlirContext ctx, intptr_t position) {
@@ -90,7 +90,7 @@ MlirAffineExpr mlirAffineSymbolExprGet(MlirContext ctx, intptr_t position) {
}
intptr_t mlirAffineSymbolExprGetPosition(MlirAffineExpr affineExpr) {
- return unwrap(affineExpr).cast<AffineSymbolExpr>().getPosition();
+ return cast<AffineSymbolExpr>(unwrap(affineExpr)).getPosition();
}
//===----------------------------------------------------------------------===//
@@ -98,7 +98,7 @@ intptr_t mlirAffineSymbolExprGetPosition(MlirAffineExpr affineExpr) {
//===----------------------------------------------------------------------===//
bool mlirAffineExprIsAConstant(MlirAffineExpr affineExpr) {
- return unwrap(affineExpr).isa<AffineConstantExpr>();
+ return isa<AffineConstantExpr>(unwrap(affineExpr));
}
MlirAffineExpr mlirAffineConstantExprGet(MlirContext ctx, int64_t constant) {
@@ -106,7 +106,7 @@ MlirAffineExpr mlirAffineConstantExprGet(MlirContext ctx, int64_t constant) {
}
int64_t mlirAffineConstantExprGetValue(MlirAffineExpr affineExpr) {
- return unwrap(affineExpr).cast<AffineConstantExpr>().getValue();
+ return cast<AffineConstantExpr>(unwrap(affineExpr)).getValue();
}
//===----------------------------------------------------------------------===//
@@ -181,13 +181,13 @@ MlirAffineExpr mlirAffineCeilDivExprGet(MlirAffineExpr lhs,
//===----------------------------------------------------------------------===//
bool mlirAffineExprIsABinary(MlirAffineExpr affineExpr) {
- return unwrap(affineExpr).isa<AffineBinaryOpExpr>();
+ return isa<AffineBinaryOpExpr>(unwrap(affineExpr));
}
MlirAffineExpr mlirAffineBinaryOpExprGetLHS(MlirAffineExpr affineExpr) {
- return wrap(unwrap(affineExpr).cast<AffineBinaryOpExpr>().getLHS());
+ return wrap(cast<AffineBinaryOpExpr>(unwrap(affineExpr)).getLHS());
}
MlirAffineExpr mlirAffineBinaryOpExprGetRHS(MlirAffineExpr affineExpr) {
- return wrap(unwrap(affineExpr).cast<AffineBinaryOpExpr>().getRHS());
+ return wrap(cast<AffineBinaryOpExpr>(unwrap(affineExpr)).getRHS());
}
diff --git a/mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp b/mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
index 91b1210efec23e0..4ae6e865f2a49e0 100644
--- a/mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
+++ b/mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
@@ -1390,7 +1390,7 @@ class TransposeOpLowering : public ConvertOpToLLVMPattern<memref::TransposeOp> {
for (const auto &en :
llvm::enumerate(transposeOp.getPermutation().getResults())) {
int targetPos = en.index();
- int sourcePos = en.value().cast<AffineDimExpr>().getPosition();
+ int sourcePos = cast<AffineDimExpr>(en.value()).getPosition();
targetMemRef.setSize(rewriter, loc, targetPos,
viewMemRef.size(rewriter, loc, sourcePos));
targetMemRef.setStride(rewriter, loc, targetPos,
diff --git a/mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp b/mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp
index 94d875d678df293..11b4cbb2506705b 100644
--- a/mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp
+++ b/mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp
@@ -318,7 +318,7 @@ static Value deriveStaticUpperBound(Value upperBound,
if (auto minOp = upperBound.getDefiningOp<AffineMinOp>()) {
for (const AffineExpr &result : minOp.getMap().getResults()) {
- if (auto constExpr = result.dyn_cast<AffineConstantExpr>()) {
+ if (auto constExpr = dyn_cast<AffineConstantExpr>(result)) {
return rewriter.create<arith::ConstantIndexOp>(minOp.getLoc(),
constExpr.getValue());
}
diff --git a/mlir/lib/Conversion/VectorToGPU/VectorToGPU.cpp b/mlir/lib/Conversion/VectorToGPU/VectorToGPU.cpp
index f0412648608a6e4..1126c2c20758c7a 100644
--- a/mlir/lib/Conversion/VectorToGPU/VectorToGPU.cpp
+++ b/mlir/lib/Conversion/VectorToGPU/VectorToGPU.cpp
@@ -61,7 +61,7 @@ static void getXferIndices(RewriterBase &rewriter, TransferOpType xferOp,
Location loc = xferOp.getLoc();
unsigned offsetsIdx = 0;
for (auto expr : xferOp.getPermutationMap().getResults()) {
- if (auto dim = expr.template dyn_cast<AffineDimExpr>()) {
+ if (auto dim = dyn_cast<AffineDimExpr>(expr)) {
Value prevIdx = indices[dim.getPosition()];
SmallVector<OpFoldResult, 3> dims(dimValues.begin(), dimValues.end());
dims.push_back(prevIdx);
@@ -549,8 +549,7 @@ convertTransferReadOp(RewriterBase &rewriter, vector::TransferReadOp op,
bool isTranspose = isTransposeMatrixLoadMap(map);
// Handle broadcast by setting the stride to 0.
- if (auto cstExpr =
- map.getResult(isTranspose).dyn_cast<AffineConstantExpr>()) {
+ if (auto cstExpr = dyn_cast<AffineConstantExpr>(map.getResult(isTranspose))) {
assert(cstExpr.getValue() == 0);
stride = 0;
}
@@ -682,8 +681,8 @@ static FailureOr<bool> isTransposed(vector::TransferReadOp op) {
mlir::AffineExpr dN = map.getResult(1);
// Find the position of these expressions in the input.
- auto exprM = dM.dyn_cast<AffineDimExpr>();
- auto exprN = dN.dyn_cast<AffineDimExpr>();
+ auto exprM = dyn_cast<AffineDimExpr>(dM);
+ auto exprN = dyn_cast<AffineDimExpr>(dN);
if (!exprM || !exprN) {
LLVM_DEBUG(DBGS() << "Failed because expressions are not affine dim "
diff --git a/mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp b/mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
index 5fffd9091d2286d..a262cf488ed2951 100644
--- a/mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
+++ b/mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
@@ -62,7 +62,7 @@ static std::optional<int64_t> unpackedDim(OpTy xferOp) {
// TODO: support 0-d corner case.
assert(xferOp.getTransferRank() > 0 && "unexpected 0-d transfer");
auto map = xferOp.getPermutationMap();
- if (auto expr = map.getResult(0).template dyn_cast<AffineDimExpr>()) {
+ if (auto expr = dyn_cast<AffineDimExpr>(map.getResult(0))) {
return expr.getPosition();
}
assert(xferOp.isBroadcastDim(0) &&
@@ -1290,7 +1290,7 @@ get1dMemrefIndices(OpBuilder &b, OpTy xferOp, Value iv,
memrefIndices.append(indices.begin(), indices.end());
assert(map.getNumResults() == 1 &&
"Expected 1 permutation map result for 1D transfer");
- if (auto expr = map.getResult(0).template dyn_cast<AffineDimExpr>()) {
+ if (auto expr = dyn_cast<AffineDimExpr>(map.getResult(0))) {
Location loc = xferOp.getLoc();
auto dim = expr.getPosition();
AffineExpr d0, d1;
diff --git a/mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp b/mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp
index 6ed3ba14fe15229..469298d3e8f43ff 100644
--- a/mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp
+++ b/mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp
@@ -167,10 +167,10 @@ FlatAffineValueConstraints::addDomainFromSliceMaps(ArrayRef<AffineMap> lbMaps,
// iteration (e.g., lbMap.getResult(0) = 0, ubMap.getResult(0) = 1).
// Make sure we skip those cases by checking that the lb result is not
// just a constant.
- !lbMap.getResult(0).isa<AffineConstantExpr>()) {
+ !isa<AffineConstantExpr>(lbMap.getResult(0))) {
// Limited support: we expect the lb result to be just a loop dimension.
// Not supported otherwise for now.
- AffineDimExpr result = lbMap.getResult(0).dyn_cast<AffineDimExpr>();
+ AffineDimExpr result = dyn_cast<AffineDimExpr>(lbMap.getResult(0));
if (!result)
return failure();
diff --git a/mlir/lib/Dialect/Affine/Analysis/LoopAnalysis.cpp b/mlir/lib/Dialect/Affine/Analysis/LoopAnalysis.cpp
index d56db64eac08261..e645afe7cd3e8fa 100644
--- a/mlir/lib/Dialect/Affine/Analysis/LoopAnalysis.cpp
+++ b/mlir/lib/Dialect/Affine/Analysis/LoopAnalysis.cpp
@@ -95,7 +95,7 @@ std::optional<uint64_t> mlir::affine::getConstantTripCount(AffineForOp forOp) {
// Take the min if all trip counts are constant.
std::optional<uint64_t> tripCount;
for (auto resultExpr : map.getResults()) {
- if (auto constExpr = resultExpr.dyn_cast<AffineConstantExpr>()) {
+ if (auto constExpr = dyn_cast<AffineConstantExpr>(resultExpr)) {
if (tripCount.has_value())
tripCount =
std::min(*tripCount, static_cast<uint64_t>(constExpr...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/71269
More information about the Mlir-commits
mailing list