aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/SmallVector.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2020-04-18 10:19:04 +0100
committerFlorian Hahn <flo@fhahn.com>2020-04-18 10:23:49 +0100
commit4ee45ab60f8639375296f8b7b96e2eb5e8a2c9d3 (patch)
treec61d288709011698a69d624b9694cc0354f5c827 /llvm/lib/Support/SmallVector.cpp
parent239093f30c342bc8a3feec1536a3154e394e55ca (diff)
downloadllvm-4ee45ab60f8639375296f8b7b96e2eb5e8a2c9d3.zip
llvm-4ee45ab60f8639375296f8b7b96e2eb5e8a2c9d3.tar.gz
llvm-4ee45ab60f8639375296f8b7b96e2eb5e8a2c9d3.tar.bz2
[LV] Invalidate cost model decisions along with interleave groups.
Cost-modeling decisions are tied to the compute interleave groups (widening decisions, scalar and uniform values). When invalidating the interleave groups, those decisions also need to be invalidated. Otherwise there is a mis-match during VPlan construction. VPWidenMemoryRecipes created initially are left around w/o converting them into VPInterleave recipes. Such a conversion indeed should not take place, and these gather/scatter recipes may in fact be right. The crux is leaving around obsolete CM_Interleave (and dependent) markings of instructions along with their costs, instead of recalculating decisions, costs, and recipes. Alternatively to forcing a complete recompute later on, we could try to selectively invalidate the decisions connected to the interleave groups. But we would likely need to run the uniform/scalar value detection parts again anyways and the extra complexity is probably not worth it. Fixes PR45572. Reviewers: gilr, rengolin, Ayal, hsaito Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D78298
Diffstat (limited to 'llvm/lib/Support/SmallVector.cpp')
0 files changed, 0 insertions, 0 deletions