[Mlir-commits] [mlir] [OpenACC][NFC] Minor clean up in ACCRoutineLowering. (PR #213333)

Moazin K. llvmlistbot at llvm.org
Fri Jul 31 11:51:18 PDT 2026


https://github.com/moazin created https://github.com/llvm/llvm-project/pull/213333

Minor NFC clean up after recent changes to remove nohost handling from ACCRoutineLowering.

Assisted-by: Codex

>From f43f78403c31841f33ac126dda2e0ba20292550a Mon Sep 17 00:00:00 2001
From: Moazin Khatti <mkhatti at nvidia.com>
Date: Thu, 30 Jul 2026 08:36:07 -0700
Subject: [PATCH] [OpenACC][NFC] Minor clean up in ACCRoutineLowering.

Minor NFC clean up after recent changes to remove nohost handling from
ACCRoutineLowering.

Assisted-by: Codex
---
 .../OpenACC/Transforms/ACCRoutineLowering.cpp | 20 ++++++++-----------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/mlir/lib/Dialect/OpenACC/Transforms/ACCRoutineLowering.cpp b/mlir/lib/Dialect/OpenACC/Transforms/ACCRoutineLowering.cpp
index d082ef8be3d17..9d5f0fc434d7e 100644
--- a/mlir/lib/Dialect/OpenACC/Transforms/ACCRoutineLowering.cpp
+++ b/mlir/lib/Dialect/OpenACC/Transforms/ACCRoutineLowering.cpp
@@ -168,15 +168,13 @@ buildRoutineBody(func::FuncOp deviceFunc, func::FuncOp hostFunc,
 }
 
 /// Update acc.routine refs
-static LogicalResult finalizeRoutines(
-    SmallVectorImpl<std::tuple<func::FuncOp, func::FuncOp, RoutineOp>>
-        &accRoutineInfo,
-    ModuleOp mod, MLIRContext *ctx) {
-  for (auto &[hostFunc, deviceFunc, routineOp] : accRoutineInfo) {
+static void finalizeRoutines(
+    SmallVectorImpl<std::pair<func::FuncOp, RoutineOp>> &accRoutineInfo,
+    MLIRContext *ctx) {
+  for (auto &[deviceFunc, routineOp] : accRoutineInfo) {
     routineOp.setFuncNameAttr(SymbolRefAttr::get(ctx, deviceFunc.getName()));
     routineOp->moveBefore(deviceFunc);
   }
-  return success();
 }
 
 class ACCRoutineLowering
@@ -197,9 +195,8 @@ class ACCRoutineLowering
     IRRewriter rewriter(ctx);
     DefaultACCToGPUMappingPolicy policy;
 
-    // Tuple: host function, device function, routine operation
-    SmallVector<std::tuple<func::FuncOp, func::FuncOp, RoutineOp>, 4>
-        accRoutineInfo;
+    // Pair: device function, routine operation
+    SmallVector<std::pair<func::FuncOp, RoutineOp>, 4> accRoutineInfo;
 
     for (RoutineOp routineOp : mod.getOps<RoutineOp>()) {
       if (routineOp.getBindNameValue() ||
@@ -226,12 +223,11 @@ class ACCRoutineLowering
                                   parLevel, policy, rewriter)))
         return signalPassFailure();
 
-      accRoutineInfo.push_back({hostFunc, deviceFunc, routineOp});
+      accRoutineInfo.push_back({deviceFunc, routineOp});
       symTab.insert(deviceFunc);
     }
 
-    if (failed(finalizeRoutines(accRoutineInfo, mod, ctx)))
-      return signalPassFailure();
+    finalizeRoutines(accRoutineInfo, ctx);
   }
 };
 



More information about the Mlir-commits mailing list