[all-commits] [llvm/llvm-project] a83d33: [flang][OpenMP] Don't allow DO CONCURRENT inside o...

Tom Eccles via All-commits all-commits at lists.llvm.org
Wed Jun 18 06:02:32 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a83d3362f686725bac76bfb9562663908de25f15
      https://github.com/llvm/llvm-project/commit/a83d3362f686725bac76bfb9562663908de25f15
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2025-06-18 (Wed, 18 Jun 2025)

  Changed paths:
    M flang/lib/Semantics/resolve-directives.cpp
    R flang/test/Lower/OpenMP/Todo/omp-doconcurrent.f90
    A flang/test/Semantics/OpenMP/do-concurrent-collapse.f90

  Log Message:
  -----------
  [flang][OpenMP] Don't allow DO CONCURRENT inside of a loop nest (#144506)

I don't think DO CONCURRENT fits the definition of a Canonical Loop Nest
(OpenMP 6.0 section 6.4.1).
It is however explicitly allowed for the LOOP construct (6.0 section
13.8).

There's some obscure language in OpenMP 6.0 for the LOOP construct:

> If the collapsed loop is a DO CONCURRENT loop, neither the
> data-sharing attribute clauses nor the collapse clause may be
specified.

>From the surrounding context, I think "collapsed loop" just means the
loop that the LOOP construct applies to. So I will interpret this to
mean that DO CONCURRENT can only be used with the LOOP construct if it
does not contain the COLLAPSE clause.

This also fixes a bug where the associated clause was never cleared
after it was set.

Fixes #144178



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list