[llvm] [VPlan] Implement interleaving as VPlan-to-VPlan transform. (PR #95842)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 5 09:05:02 PDT 2024
https://github.com/fhahn commented:
Addressed comments and also moved most unroll helper functions to UnrollState, to reduce number of parameters passed and improve clarity
> 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?
Excellent point, tried to consistently use unroll in the latest version.
> 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.
I don't think a flag is needed (and may be even more confusing), if we follow up swiftly with the mechanical change that removes the loops over parts in ::execute.
https://github.com/llvm/llvm-project/pull/95842
More information about the llvm-commits
mailing list