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

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


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b3b5e3303fdaec4bcc524bf834a9bed77c164fc2
      https://github.com/llvm/llvm-project/commit/b3b5e3303fdaec4bcc524bf834a9bed77c164fc2
  Author: Kareem Ergawy <kergawy at nvidia.com>
  Date:   2026-09-29 (Tue, 29 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 (#225758)

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