llvm-project/llvm/test/Transforms
Andrei Elovikov 7457aa0bce [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
..
ADCE [ADCE][Dominators] Reapply: Teach ADCE to preserve dominators 2017-08-22 16:30:21 +00:00
AddDiscriminators
AlignmentFromAssumptions
ArgumentPromotion [Debugify] Handled unsized types 2018-01-06 00:37:01 +00:00
AtomicExpand
BDCE [BDCE] Don't check demanded bits on unsized types 2017-08-16 16:09:22 +00:00
BranchFolding
CallSiteSplitting [CallSiteSplitting] Remove isOrHeader restriction. 2017-12-23 20:02:26 +00:00
CalledValuePropagation Add CalledValuePropagation pass 2017-10-25 13:40:08 +00:00
CodeExtractor [CodeExtractor] Use subset of function attributes for extracted function. 2018-01-07 11:22:25 +00:00
CodeGenPrepare [CGP] Fix Complex addressing mode for offset 2018-01-09 04:37:06 +00:00
ConstProp [TargetLibraryInfo] fix finite mathlib function availability 2018-01-08 17:38:09 +00:00
ConstantHoisting Fix out-of-order stepping behavior in programs with hoisted constants. 2017-11-09 20:01:31 +00:00
ConstantMerge Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
Coroutines [coroutines] Add support for symmetric control transfer (musttail on coro.resumes followed by a suspend) 2017-08-25 02:25:10 +00:00
CorrelatedValuePropagation [CVP] Replace incoming values from unreachable blocks with undef. 2018-01-08 16:34:06 +00:00
CrossDSOCFI [cfi] Build __cfi_check as Thumb when applicable. 2017-08-29 22:29:15 +00:00
DCE Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
DeadArgElim Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
DeadStoreElimination Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
DivRemPairs [DivRemPairs] split tests per target to account for bots that don't build for all targets 2017-09-09 14:10:59 +00:00
EarlyCSE [EarlyCSE] Salvage debug info during DCE 2018-01-09 15:08:37 +00:00
EliminateAvailableExternally
EntryExitInstrumenter EntryExitInstrumenter: set DebugLocs on the inserted call instructions (PR35412) 2017-11-28 18:44:26 +00:00
ExpandMemCmp/X86 [x86, MemCmpExpansion] allow 2 pairs of loads per block (PR33325) 2018-01-06 16:16:04 +00:00
Float2Int
ForcedFunctionAttrs
FunctionAttrs Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
FunctionImport Make internal/private GVs implicitly dso_local. 2018-01-11 22:15:05 +00:00
GCOVProfiling Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
GVN [PRE] Add a bunch of test cases for LICM-like PRE patterns 2018-01-03 22:28:26 +00:00
GVNHoist [GVNHoist] Fix: PR35222 gvn-hoist incorrectly erases load in case of a loop 2018-01-04 07:47:24 +00:00
GVNSink Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
GlobalDCE
GlobalMerge Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
GlobalOpt Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
GlobalSplit
GuardWidening
IPConstantProp [IPSCCP] Remove calls without side effects 2018-01-09 21:58:46 +00:00
IRCE [IRCE][NFC] Make range check's End a non-null SCEV 2018-01-12 10:00:26 +00:00
IndVarSimplify [SCEV] Fix the movement of insertion point in expander. PR35406. 2017-12-15 05:24:42 +00:00
InferAddressSpaces InferAddressSpaces: Fix bug about replacing addrspacecast 2017-10-30 21:19:41 +00:00
InferFunctionAttrs
Inline Avoid inlining if there is byval arguments with non-alloca address space 2018-01-10 13:01:18 +00:00
InstCombine [InstCombine] Apply the fix from r322284 for sin / cos -> tan too 2018-01-11 15:33:21 +00:00
InstMerge
InstNamer
InstSimplify [InstSimplify] fold implied null ptr check (PR35790) 2018-01-13 15:44:44 +00:00
InterleavedAccess [X86][LLVM]Expanding Supports lowerInterleaved{store|load}() in X86InterleavedAccess (VF64 stride 3-4) 2017-10-02 07:35:25 +00:00
Internalize
JumpThreading [JumpThreading] Preservation of DT and LVI across the pass 2018-01-12 21:06:48 +00:00
LCSSA
LICM Re-commit : [LICM] Allow sinking when foldable in loop 2017-12-15 20:33:24 +00:00
LoadStoreVectorizer Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
LoopDataPrefetch
LoopDeletion [LoopDeletion] Handle users in unreachable block 2018-01-12 07:24:43 +00:00
LoopDistribute
LoopIdiom Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
LoopInterchange [LoopInterchange] Fix phi node ordering miscompile. 2017-10-21 13:58:37 +00:00
LoopLoadElim
LoopPredication [Loop Predication] Teach LP about reverse loops 2017-12-04 15:11:48 +00:00
LoopReroll Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
LoopRotate [LoopRotate] Detect loops with indirect branches better (we're giving up on them). 2018-01-09 23:54:35 +00:00
LoopSimplify [BasicBlockUtils] Check for unreachable preds before updating LI in UpdateAnalysisInformation 2018-01-02 16:25:50 +00:00
LoopSimplifyCFG
LoopStrengthReduce [SCEV] Do not cache S -> V if S is not equivalent of V 2018-01-09 06:47:14 +00:00
LoopUnroll [Unroll][DebugInfo] Propagate loop body's debug location to epilog preheader 2017-12-26 23:31:21 +00:00
LoopUnswitch [LoopUnswitch] Fix a simple bug which disables loop unswitch for select statement 2017-08-29 21:45:11 +00:00
LoopVectorize [LV] Don't call recordVectorLoopValueForInductionCast for newly-created IV from a trunc. 2018-01-15 10:56:07 +00:00
LoopVersioning
LoopVersioningLICM
LowerAtomic LowerAtomic: Don't skip optnone functions; atomic still need lowering (PR34020) 2017-08-23 15:43:28 +00:00
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerSwitch
LowerTypeTests LowerTypeTests: Add limited support for aliases 2018-01-10 00:00:51 +00:00
Mem2Reg [Debugify] Add a pass to test debug info preservation 2017-12-08 21:57:28 +00:00
MemCpyOpt Revert "[memcpyopt] Teach memcpyopt to optimize across basic blocks" 2017-12-28 05:10:33 +00:00
MergeFunc [TailRecursionElimination] Skip debug intrinsics. 2017-11-28 09:32:25 +00:00
MergeICmps Re-land "[MergeICmps] Disable mergeicmps if the target does not want to handle memcmp expansion." 2017-10-10 08:00:45 +00:00
MetaRenamer [MetaRenamer] Leave `@main` alone. 2017-08-01 05:14:45 +00:00
NameAnonGlobals
NaryReassociate
NewGVN NewGVN: Fix PR/33367, which was causing us to delete non-copy intrinsics accidentally in some rare cases 2018-01-09 20:12:42 +00:00
ObjCARC ObjCARC: do not increment past the end of the BB 2017-10-24 00:09:10 +00:00
PGOProfile [ICP] Expose unconditional call promotion interface 2017-12-20 19:26:37 +00:00
PartiallyInlineLibCalls [PartiallyInlineLibCalls][x86] add TTI hook to allow sqrt inlining to depend on arg rather than result 2017-11-27 21:15:43 +00:00
PhaseOrdering [SimplifyCFG] don't sink common insts too soon (PR34603) 2017-12-14 22:05:20 +00:00
PlaceSafepoints All libcalls should be considered to be GC-leaf functions. 2017-07-27 16:49:39 +00:00
PreISelIntrinsicLowering
PruneEH
Reassociate Reassociate: add global reassociation algorithm 2017-12-12 19:18:02 +00:00
Reg2Mem
RewriteStatepointsForGC [RewriteStatepoints] Fix incorrect assertion 2017-12-28 12:03:12 +00:00
SCCP [SCCP] Pick the right lattice value for constants. 2017-11-22 03:04:55 +00:00
SLPVectorizer [SLP] Add/update tests for SLP vectorizer, NFC. 2018-01-10 21:29:18 +00:00
SROA [SROA] Disable non-whole-alloca splits by default 2017-12-18 06:47:37 +00:00
SafeStack Parse and print DIExpressions inline to ease IR and MIR testing 2017-08-23 20:31:27 +00:00
SampleProfile Profiling tests: Endianess XFAIL for powerpc- (32-bit) 2018-01-09 20:09:23 +00:00
Scalarizer Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
SeparateConstOffsetFromGEP
SimpleLoopUnswitch [PM/Unswitch] Teach SimpleLoopUnswitch to do non-trivial unswitching, 2017-11-17 19:58:36 +00:00
SimplifyCFG [SimplifyCFG] Stop hoisting musttail calls incorrectly. 2017-12-31 16:47:16 +00:00
Sink [Sink] Really really fix predicate in legality check 2018-01-11 21:28:57 +00:00
SpeculateAroundPHIs Add a new pass to speculate around PHI nodes with constant (integer) operands when profitable. 2017-11-28 11:32:31 +00:00
SpeculativeExecution
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
StructurizeCFG StructurizeCFG: xfail one of the testcases from r321751 2018-01-04 17:23:24 +00:00
SyntheticCountsPropagation Add a pass to generate synthetic function entry counts. 2018-01-09 19:39:35 +00:00
TailCallElim Remove this test 2017-11-28 22:39:38 +00:00
ThinLTOBitcodeWriter Make internal/private GVs implicitly dso_local. 2018-01-11 22:15:05 +00:00
Util [InstCombine] Add a flag to disable LowerDbgDeclare 2017-09-13 01:43:25 +00:00
WholeProgramDevirt Make internal/private GVs implicitly dso_local. 2018-01-11 22:15:05 +00:00