[llvm] [SLP]Fix graph traversal in getSpillCost (PR #124984)
Alexey Bataev via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 29 14:40:18 PST 2025
================
@@ -12255,17 +12257,18 @@ InstructionCost BoUpSLP::getSpillCost() const {
}
if (NumCalls) {
- SmallVector<Type *, 4> V;
- for (auto *II : LiveValues) {
- auto *ScalarTy = II->getType();
- if (auto *VectorTy = dyn_cast<FixedVectorType>(ScalarTy))
- ScalarTy = VectorTy->getElementType();
- V.push_back(getWidenedType(ScalarTy, BundleWidth));
+ SmallVector<Type *, 4> EntriesTypes;
+ for (const TreeEntry *TE : LiveEntries) {
+ auto *ScalarTy = TE->getMainOp()->getType();
+ auto It = MinBWs.find(TE);
----------------
alexey-bataev wrote:
It was a bug, we need estimate whole vector here. For revec, if the ScalarTy is 4x and there are 2 elements, it estimates the spill cost for vector 2x, but instead it should estimate for vector 8x.
https://github.com/llvm/llvm-project/pull/124984
More information about the llvm-commits
mailing list