[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