1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 20:43:44 +02:00
llvm-mirror/lib/Transforms
Andrei Elovikov eebe9ed57e [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
2018-01-15 10:56:07 +00:00
..
Coroutines Make internal/private GVs implicitly dso_local. 2018-01-11 22:15:05 +00:00
Hello
InstCombine [NFC] Change MemIntrinsicInst::setAlignment() to take an unsigned instead of a Constant 2018-01-12 21:33:37 +00:00
Instrumentation [hwasan] An LLVM flag to disable stack tag randomization. 2018-01-13 01:32:15 +00:00
IPO Make internal/private GVs implicitly dso_local. 2018-01-11 22:15:05 +00:00
ObjCARC Remove redundant includes from lib/Transforms. 2017-12-13 21:31:01 +00:00
Scalar [NFC] Fix comment to adjust to reality 2018-01-15 05:44:43 +00:00
Utils [JumpThreading] Preservation of DT and LVI across the pass 2018-01-12 21:06:48 +00:00
Vectorize [LV] Don't call recordVectorLoopValueForInductionCast for newly-created IV from a trunc. 2018-01-15 10:56:07 +00:00
CMakeLists.txt
LLVMBuild.txt