aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Kruse <llvm-project@meinersbur.de>2025-09-24 13:16:52 +0200
committerMichael Kruse <llvm-project@meinersbur.de>2025-09-24 13:16:52 +0200
commit4eb65265329cae3848f7707b6b7c3cd0c8fb78a5 (patch)
treea86abe588e515679df4734fa8cad86db4945f82b
parent01a056f711c139ee0f1e26b19cf7513701f52992 (diff)
parent7655a11ac10f0cca877e56a73e2948a265db00ab (diff)
downloadllvm-users/meinersbur/flang_tile.zip
llvm-users/meinersbur/flang_tile.tar.gz
llvm-users/meinersbur/flang_tile.tar.bz2
Merge branch 'users/meinersbur/mlir_tile' into HEADusers/meinersbur/flang_tile
-rw-r--r--mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp b/mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
index d3cc7e5..f681b03 100644
--- a/mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+++ b/mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
@@ -3300,6 +3300,9 @@ void NewCliOp::getAsmResultNames(OpAsmSetValueNameFn setNameFn) {
Value result = getResult();
auto [newCli, gen, cons] = decodeCli(result);
+ // Structured binding `gen` cannot be captured in lambdas before C++20
+ OpOperand *generator = gen;
+
// Derive the CLI variable name from its generator:
// * "canonloop" for omp.canonical_loop
// * custom name for loop transformation generatees
@@ -3324,7 +3327,7 @@ void NewCliOp::getAsmResultNames(OpAsmSetValueNameFn setNameFn) {
unsigned firstGrid = generateesFirst;
unsigned firstIntratile = generateesFirst + generateesCount / 2;
unsigned end = generateesFirst + generateesCount;
- unsigned opnum = gen->getOperandNumber();
+ unsigned opnum = generator->getOperandNumber();
// In the OpenMP apply and looprange clauses, indices are 1-based
if (firstGrid <= opnum && opnum < firstIntratile) {
unsigned gridnum = opnum - firstGrid + 1;