[all-commits] [llvm/llvm-project] b3a69f: [flang][OpenMP] Use OmpDirectiveSpecification in A...

Krzysztof Parzyszek via All-commits all-commits at lists.llvm.org
Fri Oct 31 06:58:15 PDT 2025


  Branch: refs/heads/users/kparzysz/r13-ods-allocate
  Home:   https://github.com/llvm/llvm-project
  Commit: b3a69f5dabb6e8d6801b47eeb0b9de9023fcda2e
      https://github.com/llvm/llvm-project/commit/b3a69f5dabb6e8d6801b47eeb0b9de9023fcda2e
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2025-10-31 (Fri, 31 Oct 2025)

  Changed paths:
    M flang/examples/FeatureList/FeatureList.cpp
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/openmp-utils.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Parser/openmp-utils.cpp
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/canonicalize-omp.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/test/Lower/OpenMP/Todo/omp-declarative-allocate-align.f90
    M flang/test/Lower/OpenMP/Todo/omp-declarative-allocate.f90
    M flang/test/Parser/OpenMP/allocate-align-tree.f90
    M flang/test/Parser/OpenMP/allocate-tree-spec-part.f90
    M flang/test/Parser/OpenMP/allocate-tree.f90
    M flang/test/Parser/OpenMP/allocate-unparse.f90
    M flang/test/Semantics/OpenMP/allocate-align01.f90
    M flang/test/Semantics/OpenMP/allocate-directive.f90
    M flang/test/Semantics/OpenMP/allocate01.f90
    M flang/test/Semantics/OpenMP/allocate02.f90
    M flang/test/Semantics/OpenMP/allocate03.f90
    M flang/test/Semantics/OpenMP/allocate06.f90
    M flang/test/Semantics/OpenMP/allocate10.f90
    A flang/test/Semantics/OpenMP/allocate12.f90

  Log Message:
  -----------
  [flang][OpenMP] Use OmpDirectiveSpecification in ALLOCATE

The ALLOCATE directive has two forms:
- A declarative form with a standalone directive:
    !$OMP ALLOCATE (variable-list-item...)
- An executable form that consists of several diretives followed by an
  ALLOCATE statement:
    !$OMP ALLOCATE (variable-list-item...)
    !$OMP ALLOCATE (variable-list-item...)
    ...
    ALLOCATE (...)

The second form was deprecated in OpenMP 5.2 in favor of the ALLOCATORS
construct.

Since in the parse tree every type corresponding to a directive only
corresponds to a single directive, the executable form is represented by
a sequence of nested OmpAlocateDirectives, e.g.
   !$OMP ALLOCATE(x)
   !$OMP ALLOCATE(y)
   ALLOCATE(x, y)
will become
   OmpAllocateDirective
   |- ALLOCATE(x)            // begin directive
   `- OmpAllocateDirective   // block
      |- ALLOCATE(y)            // begin directive
      `- ALLOCATE(x, y)         // block

With this change all AST nodes for directives use OmpDirectiveSpecification
as the directive representation.



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