[llvm] [VPlan] Implement interleaving as VPlan-to-VPlan transform. (PR #95842)

via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 3 15:24:28 PDT 2024


https://github.com/ayalz commented:

Still have parts to go over, but various comments have accumulated so starting the pipe, yet to be completed.

One issue worth discussing is **names**:
- "interleaving" may be confused with "interleave-groups"
- IC is synonymous to UF and to NumParts, implying that Interleaving is aka Unrolling ("in-place", and Jamming). E.g., "interleaveByUF()" should accept UF as parameter rather than IC, and perhaps better called unrollByUF().
- "replicate" as in recipe and region is also synonymous to "interleaving", i.e., making copies in-place.
Should we pick one term for consistency, throughout - "replicating" or "unrolling" rather  than "interleaving" to avoid confusion with interleave-groups?

Another issue is retaining State.UF (set to 1) and having execute()'s iterate over its Parts, as a gradual step with reduced diff. This may raise some eyebrows when looking at the code, even if temporarily until State.UF and its loops are retired. Is it worth trying to keep both versions alive, say with a flag, or will that only complicate things further, needlessly, and detrimental - inflating back the patch size.

https://github.com/llvm/llvm-project/pull/95842


More information about the llvm-commits mailing list