[Mlir-commits] [mlir] [mlir] Using `getDefiningOp<OpTy>()` instead of `dyn_cast_or_null<OpTy>(getDefiningOp())` (NFC) (PR #173445)
Longsheng Mou
llvmlistbot at llvm.org
Tue Dec 23 19:45:01 PST 2025
https://github.com/CoTinker created https://github.com/llvm/llvm-project/pull/173445
None
>From 679f221a31c3527b09c7a125207f666ca6b5c5da Mon Sep 17 00:00:00 2001
From: Longsheng Mou <longshengmou at gmail.com>
Date: Wed, 24 Dec 2025 11:37:25 +0800
Subject: [PATCH 1/4] use getDefiningOp<OpTy>
---
mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp b/mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp
index b9f5befc77409..36a93d60e0882 100644
--- a/mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp
+++ b/mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp
@@ -1,4 +1,4 @@
-//===- SCFToGPU.cpp - Convert an affine loop nest to a GPU kernel -------===//
+//===- SCFToGPU.cpp - Convert an affine loop nest to a GPU kernel ---------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
@@ -333,12 +333,10 @@ static Value deriveStaticUpperBound(Value upperBound,
}
if (auto multiplyOp = upperBound.getDefiningOp<arith::MulIOp>()) {
- if (auto lhs = dyn_cast_or_null<arith::ConstantIndexOp>(
- deriveStaticUpperBound(multiplyOp.getOperand(0), rewriter)
- .getDefiningOp()))
- if (auto rhs = dyn_cast_or_null<arith::ConstantIndexOp>(
- deriveStaticUpperBound(multiplyOp.getOperand(1), rewriter)
- .getDefiningOp())) {
+ if (auto lhs = deriveStaticUpperBound(multiplyOp.getOperand(0), rewriter)
+ .getDefiningOp<arith::ConstantIndexOp>())
+ if (auto rhs = deriveStaticUpperBound(multiplyOp.getOperand(1), rewriter)
+ .getDefiningOp<arith::ConstantIndexOp>()) {
// Assumptions about the upper bound of minimum computations no longer
// work if multiplied by mixed signs, so abort in this case.
if ((lhs.value() < 0) != (rhs.value() < 0))
>From f567affbbbc77d19dbfdd47532be8eb683a06553 Mon Sep 17 00:00:00 2001
From: Longsheng Mou <longshengmou at gmail.com>
Date: Wed, 24 Dec 2025 11:39:58 +0800
Subject: [PATCH 2/4] use getDefiningOp<OpTy>
---
mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitData.cpp | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitData.cpp b/mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitData.cpp
index a4049dfa96758..c4b43c5cb1b27 100644
--- a/mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitData.cpp
+++ b/mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitData.cpp
@@ -400,14 +400,13 @@ void ACCImplicitData::generateRecipes(ModuleOp &module, OpBuilder &builder,
auto &accSupport = this->getAnalysis<acc::OpenACCSupport>();
for (auto var : newOperands) {
auto loc{var.getLoc()};
- if (auto privateOp = dyn_cast<acc::PrivateOp>(var.getDefiningOp())) {
+ if (auto privateOp = var.getDefiningOp<acc::PrivateOp>()) {
auto recipe = generatePrivateRecipe(
module, acc::getVar(var.getDefiningOp()), loc, builder, accSupport);
if (recipe)
privateOp.setRecipeAttr(
SymbolRefAttr::get(module->getContext(), recipe.getSymName()));
- } else if (auto firstprivateOp =
- dyn_cast<acc::FirstprivateOp>(var.getDefiningOp())) {
+ } else if (auto firstprivateOp = var.getDefiningOp<acc::FirstprivateOp>()) {
auto recipe = generateFirstprivateRecipe(
module, acc::getVar(var.getDefiningOp()), loc, builder, accSupport);
if (recipe)
>From 8c02d104ba9a121fc7a46549b1bebaa1a20e923a Mon Sep 17 00:00:00 2001
From: Longsheng Mou <longshengmou at gmail.com>
Date: Wed, 24 Dec 2025 11:41:05 +0800
Subject: [PATCH 3/4] use getDefiningOp<OpTy>
---
mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp b/mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp
index bd64d758045a4..e97fd1471e6e0 100644
--- a/mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp
+++ b/mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp
@@ -153,7 +153,7 @@ std::string mlir::acc::getRecipeName(mlir::acc::RecipeKind kind,
mlir::Value mlir::acc::getBaseEntity(mlir::Value val) {
if (auto partialEntityAccessOp =
- dyn_cast<PartialEntityAccessOpInterface>(val.getDefiningOp())) {
+ val.getDefiningOp<PartialEntityAccessOpInterface>()) {
if (!partialEntityAccessOp.isCompleteView())
return partialEntityAccessOp.getBaseEntity();
}
>From f5e85dbe0ca5c7d6a2a6efc9e1d8471f30648263 Mon Sep 17 00:00:00 2001
From: Longsheng Mou <longshengmou at gmail.com>
Date: Wed, 24 Dec 2025 11:42:06 +0800
Subject: [PATCH 4/4] use getDefiningOp<OpTy>
---
mlir/lib/Target/IRDLToCpp/IRDLToCpp.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mlir/lib/Target/IRDLToCpp/IRDLToCpp.cpp b/mlir/lib/Target/IRDLToCpp/IRDLToCpp.cpp
index b87cbb5a9aab1..253f3172aff96 100644
--- a/mlir/lib/Target/IRDLToCpp/IRDLToCpp.cpp
+++ b/mlir/lib/Target/IRDLToCpp/IRDLToCpp.cpp
@@ -371,7 +371,7 @@ static void generateRegionConstraintVerifiers(
std::string textualConditionName = "any region";
if (auto regionDefOp =
- dyn_cast<irdl::RegionOp>(regionsOp->getArgs()[i].getDefiningOp())) {
+ regionsOp->getArgs()[i].getDefiningOp<irdl::RegionOp>()) {
// Generate constraint condition based on RegionOp attributes
SmallVector<std::string> conditionParts;
SmallVector<std::string> descriptionParts;
More information about the Mlir-commits
mailing list