HomePhabricator

[LV] Invalidate cost model decisions along with interleave groups.

Authored by fhahn on Apr 18 2020, 2:19 AM.

Description

[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

Details

Committed
fhahnApr 18 2020, 2:23 AM
Reviewer
Ayal
Differential Revision
D78298: [LV] Invalidate cost model decisions along with interleave groups.
Parents
rG239093f30c34: [lldb] [testsuite] Fix a regression of TestCppScope.py
Branches
Unknown
Tags
Unknown