[all-commits] [llvm/llvm-project] c3d061: [flang] Lower loops whose branching is confined to...
Kareem Ergawy via All-commits
all-commits at lists.llvm.org
Fri Sep 25 02:33:44 PDT 2026
Branch: refs/heads/users/ergawy/unstructured-lower-category-c
Home: https://github.com/llvm/llvm-project
Commit: c3d0613d65eb7972b8c699bbcc37b065fd4ba558
https://github.com/llvm/llvm-project/commit/c3d0613d65eb7972b8c699bbcc37b065fd4ba558
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_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: 99c4b48715125ec4eb0548732a263787633f675b
https://github.com/llvm/llvm-project/commit/99c4b48715125ec4eb0548732a263787633f675b
Author: ergawy <kareem.ergawy at gmail.com>
Date: 2026-09-25 (Fri, 25 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/aac1793e8109...99c4b4871512
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