[flang] [llvm] [mlir] [flang][OpenMP] Enable tiling (PR #143715)
Jan Leyonberg via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 26 03:45:37 PDT 2025
================
@@ -5024,8 +5024,9 @@ struct OpenMPBlockConstruct {
struct OpenMPLoopConstruct {
TUPLE_CLASS_BOILERPLATE(OpenMPLoopConstruct);
OpenMPLoopConstruct(OmpBeginLoopDirective &&a)
- : t({std::move(a), std::nullopt, std::nullopt}) {}
+ : t({std::move(a), std::nullopt, std::nullopt, std::nullopt}) {}
std::tuple<OmpBeginLoopDirective, std::optional<DoConstruct>,
+ std::optional<common::Indirection<OpenMPLoopConstruct>>,
----------------
jsjodin wrote:
It can work as a linked list for multiple nested loop constructs. Note that we also might want to keep the DoConstruct inside the innermost loop construct in the future, instead of the outer one. The choice to keep it with the outer loop construct was to minimize the changes in the rest of the lowering since we can only handle tiling. Moving the DoConstruct in the canonicalization to the tiling loop construct (inner most) can be a separate PR if that is a better representation. Allowing multiple nested ops would be the final step, at that point we would need to use the CLIs, canonical loops and loop transformation ops.
https://github.com/llvm/llvm-project/pull/143715
More information about the llvm-commits
mailing list