ROCm / llvm-project

This is the AMD-maintained fork of the LLVM git repository. This repository accepts pull requests and issues related to AMD fork-specific topics (amd/*). For all other issues/PRs, please submit upstream at https://github.com/llvm/llvm-project.
Other
94 stars 48 forks source link

[MLIR][OpenMP] Add omp.loopnest operation #42

Closed skatrak closed 3 weeks ago

skatrak commented 3 months ago

This patch introduces the omp.loopnest MLIR operation, which contains the information of a rectangular collapsed loop nest. It mirrors the existing representation of omp.wsloop, omp.simdloop and omp.taskloop, with the intent of removing loop information from these in a subsequent patch.

This representation is a temporary solution that does not address loop transformations. That is the goal of the omp.canonical_loop discussion.

Meinersbur commented 2 months ago

Can we use a different name than omp.canonical_loop (or propose a new name for what we will use to create a CanonicalLoopInfo)? I fear that when we eventually introduce the final omp.canonical_loop we would have to fight a lot of non-obvious conflicts of two operations with the same name, even if only the working branches of the final omp.canonical_loop merges the last top-of-free from trunk. With a different name, both can coexist (for a while) until final omp.canonical_loop reaches parity with the stopgap solution.

skatrak commented 2 months ago

That's a good point, using another name to avoid conflicts during the transition, if we follow this approach, makes sense.

skatrak commented 3 weeks ago

Features in this PR already landed via merge from main.