[all-commits] [llvm/llvm-project] 1463f9: [flang] Lower loops whose branching is confined to...

Kareem Ergawy via All-commits all-commits at lists.llvm.org
Fri Sep 25 02:20:46 PDT 2026


  Branch: refs/heads/users/ergawy/unstructured-lower-category-c
  Home:   https://github.com/llvm/llvm-project
  Commit: 1463f94f260a7d5602eeaa6ab7107b6b577e9e70
      https://github.com/llvm/llvm-project/commit/1463f94f260a7d5602eeaa6ab7107b6b577e9e70
  Author: ergawy <kareem.ergawy at gmail.com>
  Date:   2026-09-25 (Fri, 25 Sep 2026)

  Changed paths:
    M flang/include/flang/Lower/AbstractConverter.h
    M flang/include/flang/Lower/PFTBuilder.h
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/lib/Lower/PFTBuilder.cpp
    M flang/test/Lower/OpenACC/acc-cache.f90
    A flang/test/Lower/OpenACC/acc-unstructured-internals.f90
    M flang/test/Lower/OpenACC/acc-unstructured.f90
    R flang/test/Lower/OpenMP/Todo/metadirective-loop-unstructured.f90
    A flang/test/Lower/OpenMP/metadirective-loop-unstructured.f90
    M flang/test/Lower/OpenMP/wsloop-unstructured-cycle.f90
    A flang/test/Lower/OpenMP/wsloop-unstructured-internals.f90
    M flang/test/Lower/always-execute-loop-body.f90
    A flang/test/Lower/do-loop-branch-to-loop-header.f90
    M flang/test/Lower/do-loop-infinite-body-cycle.f90
    M flang/test/Lower/do_loop_unstructured.f90
    M flang/test/Lower/select-case-statement.f90

  Log Message:
  -----------
  [flang] Lower loops whose branching is confined to their body structurally

Such a loop was classified separately by a previous change but still
lowered as a raw CFG, so its structured form was lost.

Lower it structurally instead, with its body folded into a region that can
hold the branching. The loop keeps its bounds on the op, so it remains
available to whatever transforms or parallelizes it. Only the body is
folded: the loop control statements are emitted as they are for any
structured loop, since a branch from outside may target either of them.

Loops an OpenACC or OpenMP directive owns are lowered the same way, so
they keep their form too.



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