[all-commits] [llvm/llvm-project] 9beec1: [flang] Let a directive keep the loop it owns when...

Kareem Ergawy via All-commits all-commits at lists.llvm.org
Tue Sep 29 22:12:56 PDT 2026


  Branch: refs/heads/users/ergawy/acc-directive-owns-loop
  Home:   https://github.com/llvm/llvm-project
  Commit: 9beec1b777e8182d2f65e1f15381eddb1890885f
      https://github.com/llvm/llvm-project/commit/9beec1b777e8182d2f65e1f15381eddb1890885f
  Author: ergawy <kareem.ergawy at gmail.com>
  Date:   2026-09-29 (Tue, 29 Sep 2026)

  Changed paths:
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/PFTBuilder.cpp
    R flang/test/Lower/OpenACC/Todo/acc-unstructured-combined-construct.f90
    M flang/test/Lower/OpenACC/Todo/acc-unstructured-loop-construct.f90
    A flang/test/Lower/OpenACC/acc-directive-loop-bounds.f90
    A flang/test/Lower/OpenACC/acc-unstructured-combined-construct.f90
    M flang/test/Lower/OpenACC/acc-unstructured-internals.f90
    A flang/test/Lower/OpenACC/acc-unstructured-loop-construct.f90
    M flang/test/Lower/OpenACC/acc-unstructured.f90
    A flang/test/Lower/OpenMP/wsloop-directive-loop-bounds.f90

  Log Message:
  -----------
  [flang] Let a directive keep the loop it owns when its body branches

A loop whose branching is confined to its body keeps its structured form,
but the construct holding it stayed unstructured. A directive does not
merely contain such a loop, it owns it, and its lowering reads the
construct's own classification to decide whether the loop op carries its
bounds. The directive was left with a bounds-free loop that nothing could
partition, and the loop it owns became a second one nested inside.

Reclassify a directive construct once the loops it holds no longer need it
to stay unstructured, and fold the body of the loop it takes over into a
region, which the DO lowering can no longer do for it.

A construct whose branching leaves it is untouched, as is one holding a
branch of its own.



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