[llvm] [WIP][SLP] Forest Vectorization for Wide Chains (PR #171917)
Ryan Buchner via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 30 11:13:10 PST 2025
bababuck wrote:
Pushing an updated functioning verison, still some TODO's:
- The main change is that in `vectorizeStores()`, when a `VF > VFMax` is requested, the chain is broken up into `VFMax` size chunks, a separate tree is created for each chunk. Then `transformNodes()` is called once and operates across the trees, and all tree's are costed together afterwards, and if profitable, vectorized.
TODOs:
- Only supports forests that start from store chains.
- Update `BoUpSLP::computeMinimumValueSizes()` to handle a forest, I suspect this is currently broken
- In `vectorizeStores()`, currently we rely on a heuristic using the size of previous trees to decide whether or not to vectorize a given subset of `Stores`. However, we ought to figure out how to integrate it if we have a forest with trees of varying sizes. Right now I just abort if the forest has varying sizes of trees to avoid this issue.
- There seems to be some funkiness with shuffle vs insert decisions, I suspect it might just have something to do with target specific costing though.
https://github.com/llvm/llvm-project/pull/171917
More information about the llvm-commits
mailing list