[all-commits] [llvm/llvm-project] 6f7697: [flang][OpenMP] Decompose compound construccts, do...

Krzysztof Parzyszek via All-commits all-commits at lists.llvm.org
Thu Apr 25 10:51:26 PDT 2024


  Branch: refs/heads/users/kparzysz/spr/d09-recurse
  Home:   https://github.com/llvm/llvm-project
  Commit: 6f7697e46ace92707bc4cf648fab25a72c0639a1
      https://github.com/llvm/llvm-project/commit/6f7697e46ace92707bc4cf648fab25a72c0639a1
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-04-25 (Thu, 25 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    A llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h

  Log Message:
  -----------
  [flang][OpenMP] Decompose compound construccts, do recursive lowering

A compound construct with a list of clauses is broken up into
individual leaf/composite constructs. Each such construct has
the list of clauses that apply to it based on the OpenMP spec.

Each lowering function (i.e. a function that generates MLIR ops)
is now responsible for generating its body as described below.

Functions that receive AST nodes extract the construct, and the
clauses from the node. They then create a work queue consisting
of individual constructs, and invoke a common dispatch function.

The dispatch function examines the current position in the queue,
and invokes the appropriate lowering function. Each lowering
function receives the queue as well, and once it needs to generate
its body, it either invokes the dispatch function on the rest of
the queue (if any), or processes nested evaluations if the work
queue is at the end.



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