mirror of
https://github.com/opnsense/src.git
synced 2026-02-11 23:06:12 -05:00
[LV] Don't call recordVectorLoopValueForInductionCast for newly-created IV from a trunc. Summary: This method is supposed to be called for IVs that have casts in their use-def chains that are completely ignored after vectorization under PSE. However, for truncates of such IVs the same InductionDescriptor is used during creation/widening of both original IV based on PHINode and new IV based on TruncInst. This leads to unintended second call to recordVectorLoopValueForInductionCast with a VectorLoopVal set to the newly created IV for a trunc and causes an assert due to attempt to store new information for already existing entry in the map. This is wrong and should not be done. Fixes PR35773. Reviewers: dorit, Ayal, mssimpso Reviewed By: dorit Subscribers: RKSimon, dim, dcaballe, hsaito, llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D41913 This should fix "Vector value already set for part" assertions when building the net/iodine and sysutils/daa2iso ports. Reported by: jbeich PR: 224867,224868 |
||
|---|---|---|
| .. | ||
| LoadStoreVectorizer.cpp | ||
| LoopVectorize.cpp | ||
| SLPVectorizer.cpp | ||
| Vectorize.cpp | ||
| VPlan.cpp | ||
| VPlan.h | ||
| VPlanBuilder.h | ||
| VPlanValue.h | ||