diff options
author | Andrei Elovikov <andrei.elovikov@intel.com> | 2018-01-15 10:56:07 +0000 |
---|---|---|
committer | Andrei Elovikov <andrei.elovikov@intel.com> | 2018-01-15 10:56:07 +0000 |
commit | 7457aa0bce3352d9ca22d1a7435d2763def8e885 (patch) | |
tree | 98aafd519884512ec9743d120fe2b673429893c8 /llvm/lib/Support/MemoryBuffer.cpp | |
parent | cc2ba028170e4f00b7f9edc260cf1e833e6eda27 (diff) | |
download | llvm-7457aa0bce3352d9ca22d1a7435d2763def8e885.zip llvm-7457aa0bce3352d9ca22d1a7435d2763def8e885.tar.gz llvm-7457aa0bce3352d9ca22d1a7435d2763def8e885.tar.bz2 |
[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
llvm-svn: 322473
Diffstat (limited to 'llvm/lib/Support/MemoryBuffer.cpp')
0 files changed, 0 insertions, 0 deletions