[all-commits] [llvm/llvm-project] 0bde01: [flang][OpenMP] Add optional argument to requireme...

Krzysztof Parzyszek via All-commits all-commits at lists.llvm.org
Wed Oct 15 05:49:57 PDT 2025


  Branch: refs/heads/users/kparzysz/q04-optional-arg-requires
  Home:   https://github.com/llvm/llvm-project
  Commit: 0bde0179ec60559efdcafbca73f68dddf2ce51d2
      https://github.com/llvm/llvm-project/commit/0bde0179ec60559efdcafbca73f68dddf2ce51d2
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2025-10-15 (Wed, 15 Oct 2025)

  Changed paths:
    M flang/include/flang/Lower/OpenMP/Clauses.h
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Lower/OpenMP/Clauses.cpp
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/test/Parser/OpenMP/requires.f90
    A flang/test/Semantics/OpenMP/requires10.f90
    M llvm/include/llvm/Frontend/OpenMP/ClauseT.h
    M llvm/include/llvm/Frontend/OpenMP/OMP.td

  Log Message:
  -----------
  [flang][OpenMP] Add optional argument to requirement clauses

OpenMP 6.0 added an optional logical parameter to the requirement clauses
(except ATOMIC_DEFAULT_MEM_ORDER) to indicate whether the clause should
take effect or not. The parameter defaults to true if not specified.

The parameter value is a compile-time constant expression, but it may
require folding to get the final value. Since name resolution happens
before folding, the argument expression needs to be analyzed by hand.
The determination of the value needs to happen during name resolution
because the requirement directives need to be available through module
files (and the module reader doesn't to semantic checks beyonn name
resolution).



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