[all-commits] [llvm/llvm-project] 88a09a: [flang] Lower loops whose branching is confined to...
Kareem Ergawy via All-commits
all-commits at lists.llvm.org
Tue Sep 29 06:57:38 PDT 2026
Branch: refs/heads/users/ergawy/unstructured-lower-category-c
Home: https://github.com/llvm/llvm-project
Commit: 88a09a691c7476182b76be5cc1005d844c15093c
https://github.com/llvm/llvm-project/commit/88a09a691c7476182b76be5cc1005d844c15093c
Author: ergawy <kareem.ergawy at gmail.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_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 unstructured, 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.
Commit: 85406f7ea09999624627d0687d65db15d8d16f5d
https://github.com/llvm/llvm-project/commit/85406f7ea09999624627d0687d65db15d8d16f5d
Author: ergawy <kareem.ergawy at gmail.com>
Date: 2026-09-29 (Tue, 29 Sep 2026)
Changed paths:
M flang/test/Lower/do-loop-infinite-body-cycle.f90
Log Message:
-----------
[flang][Test] Cover the lowering of loops with a non-terminating body
A previous change leaves such a loop unstructured. Check what that produces:
the cycle survives as a block branching to itself, no fir.do_loop is emitted
for the loop control, and a loop that only needs a block of its own still
gets the structured form with its body in a region.
Compare: https://github.com/llvm/llvm-project/compare/8afd615ce2ec...85406f7ea099
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