[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