[llvm-branch-commits] [flang] [mlir] [flang][OpenMP] Lower target in_reduction for host fallback (PR #199967)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Jun 15 22:30:34 PDT 2026
================
@@ -0,0 +1,30 @@
+! RUN: bbc -emit-hlfir -fopenmp -fopenmp-version=50 -o - %s 2>&1 | FileCheck %s
+! RUN: %flang_fc1 -emit-hlfir -fopenmp -fopenmp-version=50 -o - %s 2>&1 | FileCheck %s
----------------
MattPD wrote:
Both new `.f90` tests stop at `-emit-hlfir`, and the MLIR-translation tests use the same SSA value for both the `in_reduction` operand and the map `var_ptr`. As a result, the Flang -> translation seam this PR adds isn't covered end to end. Real Flang emits the `in_reduction` operand from `hlfir.declare ...#0` and the map from `var_ptr(...#1)` (CHECK lines 17-18), and `convertOmpTarget` pairs them by exact SSA-value identity. That works today only because the two `hlfir.declare` results collapse to one value for trivial scalars. If that collapse stops holding, or support widens past scalars, valid Fortran would become a hard `... must also be captured by a matching map_entries entry` error with no test to catch the regression. Would it be worth adding a `%flang_fc1 -emit-llvm -fopenmp -fopenmp-version=50` RUN, nested in a `taskgroup task_reduction`, that checks the `__kmpc_task_reduction_get_th_data(..., ptr null, ...)` call and the redirected load/store?
https://github.com/llvm/llvm-project/pull/199967
More information about the llvm-branch-commits
mailing list