[Mlir-commits] [mlir] b5df6a9 - [mlir][openacc] Fix num_gang parser (#78792)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Mon Jan 22 08:40:37 PST 2024
Author: Valentin Clement (バレンタイン クレメン)
Date: 2024-01-22T08:40:33-08:00
New Revision: b5df6a90f5365e61d2dfa1583d36cbc79ab5775b
URL: https://github.com/llvm/llvm-project/commit/b5df6a90f5365e61d2dfa1583d36cbc79ab5775b
DIFF: https://github.com/llvm/llvm-project/commit/b5df6a90f5365e61d2dfa1583d36cbc79ab5775b.diff
LOG: [mlir][openacc] Fix num_gang parser (#78792)
Nb of operand per segment is not correctly computed.
Added:
Modified:
mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
mlir/test/Dialect/OpenACC/ops.mlir
Removed:
################################################################################
diff --git a/mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp b/mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
index bc03adbcae64df7..80f0529c87460e2 100644
--- a/mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
+++ b/mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
@@ -818,6 +818,7 @@ static ParseResult parseNumGangs(
if (failed(parser.parseLBrace()))
return failure();
+ int32_t crtOperandsSize = operands.size();
if (failed(parser.parseCommaSeparatedList(
mlir::AsmParser::Delimiter::None, [&]() {
if (parser.parseOperand(operands.emplace_back()) ||
@@ -826,8 +827,7 @@ static ParseResult parseNumGangs(
return success();
})))
return failure();
-
- seg.push_back(operands.size());
+ seg.push_back(operands.size() - crtOperandsSize);
if (failed(parser.parseRBrace()))
return failure();
diff --git a/mlir/test/Dialect/OpenACC/ops.mlir b/mlir/test/Dialect/OpenACC/ops.mlir
index 99b44183758d952..bda31a19cf5cd80 100644
--- a/mlir/test/Dialect/OpenACC/ops.mlir
+++ b/mlir/test/Dialect/OpenACC/ops.mlir
@@ -1878,3 +1878,12 @@ func.func @acc_atomic_capture(%v: memref<i32>, %x: memref<i32>, %expr: i32) {
return
}
+
+// -----
+
+%c2 = arith.constant 2 : i32
+%c1 = arith.constant 1 : i32
+acc.parallel num_gangs({%c2 : i32} [#acc.device_type<default>], {%c1 : i32, %c1 : i32, %c1 : i32} [#acc.device_type<nvidia>]) {
+}
+
+// CHECK: acc.parallel num_gangs({%c2{{.*}} : i32} [#acc.device_type<default>], {%c1{{.*}} : i32, %c1{{.*}} : i32, %c1{{.*}} : i32} [#acc.device_type<nvidia>])
More information about the Mlir-commits
mailing list