llvm-project/llvm/test/Transforms
Keno Fischer 92f377bd74 [LAA] Prevent invalid IR for loop-invariant bound in loop body
Summary:
If LAA expands a bound that is loop invariant, but not hoisted out
of the loop body, it used to use that value anyway, causing a
non-domination error, because the memcheck block is of course not
dominated by the scalar loop body. Detect this situation and expand
the SCEV expression instead.

Fixes PR31251

Reviewers: anemet
Subscribers: mzolotukhin, llvm-commits

Differential Revision: https://reviews.llvm.org/D27397

llvm-svn: 288705
2016-12-05 21:25:03 +00:00
..
ADCE
AddDiscriminators Introduce updateDiscriminator interface to DILocation to make it cleaner assigning discriminators. 2016-10-26 15:48:45 +00:00
AlignmentFromAssumptions
ArgumentPromotion
AtomicExpand
BBVectorize [ValueTracking] An improvement to IR ValueTracking on Non-negative Integers 2016-10-12 16:18:43 +00:00
BDCE
BranchFolding
CodeExtractor CodeExtractor : Add ability to preserve profile data. 2016-08-02 02:15:45 +00:00
CodeGenPrepare AMDGPU: Implement isCheapAddrSpaceCast 2016-12-02 18:12:53 +00:00
ConstProp
ConstantHoisting
ConstantMerge
Coroutines [coroutines] Store an address of destroy OR cleanup part in the coroutine frame. 2016-10-08 00:22:50 +00:00
CorrelatedValuePropagation [CVP] Remove use of removed flag (-cvp-dont-process-adds) from the test 2016-11-29 16:43:30 +00:00
CountingFunctionInserter Add a counter-function insertion pass 2016-09-01 09:42:39 +00:00
CrossDSOCFI
DCE llvm/test/Transforms/DCE/calls-errno.ll: Suppress checking @pow(+0,-1). 2016-11-04 18:50:45 +00:00
DeadArgElim DeadArgElim: Don't mark swifterror arguments as unused 2016-09-21 15:29:08 +00:00
DeadStoreElimination [DSE] Don't remove stores made live by a call which unwinds. 2016-08-12 01:09:53 +00:00
EarlyCSE [EarlyCSE] Make MemorySSA memory dependency check more aggressive. 2016-10-25 16:18:47 +00:00
EliminateAvailableExternally
Float2Int
ForcedFunctionAttrs
FunctionAttrs [FunctionAttrs] Don't try to infer returned if it is already on an argument 2016-09-12 16:04:59 +00:00
FunctionImport [llvm] Remove redundant --check-prefix=CHECK from tests 2016-10-24 18:57:55 +00:00
GCOVProfiling DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
GVN [GVN, OptDiag] Print the interesting instructions involved in missed load-elimination 2016-12-01 17:34:50 +00:00
GVNHoist commit back "GVN-hoist: fix store past load dependence analysis (PR30216, PR30499)" 2016-10-13 01:39:10 +00:00
GlobalDCE
GlobalMerge Teach llvm::StripDebugInfo() about global variable !dbg attachments. 2016-10-10 17:53:33 +00:00
GlobalOpt [GlobalOpt] Dead Eliminate declarations 2016-09-15 20:26:27 +00:00
GlobalSplit [GlobalSplit] Port to the new pass manager. 2016-11-21 00:28:23 +00:00
GuardWidening
IPConstantProp
IRCE [IRCE] Create llvm::Loop instances for cloned out loops 2016-08-14 01:04:46 +00:00
IndVarSimplify [IndVars] Change the order to compute WidenAddRec in widenIVUse. 2016-11-15 17:34:52 +00:00
InferFunctionAttrs [InferAttributes] Don't access parameters that don't exist. 2016-09-20 23:10:31 +00:00
Inline [DIExpression] Introduce a dedicated DW_OP_LLVM_fragment operation 2016-12-05 18:04:47 +00:00
InstCombine [InstCombine] change select type to eliminate bitcasts 2016-12-03 15:25:16 +00:00
InstMerge
InstSimplify Simplify `x >=u x >> y` and `x >=u x udiv y` 2016-10-26 19:18:43 +00:00
InterleavedAccess/X86 Add a pass to optimize patterns of vectorized interleaved memory accesses for 2016-10-14 18:20:41 +00:00
Internalize
JumpThreading Revert "[JumpThreading] Unfold selects that depend on the same condition" 2016-11-15 15:42:23 +00:00
LCSSA
LICM Enable Loop Sink pass for functions that has profile. 2016-11-09 00:58:19 +00:00
LoadCombine
LoadStoreVectorizer [LoadStoreVectorizer] Enable vectorization of stores in the presence of an aliasing load 2016-11-23 17:43:15 +00:00
LoopDataPrefetch [PM] Port LoopDataPrefetch AArch64 tests to new pass manager 2016-08-22 12:59:58 +00:00
LoopDeletion
LoopDistribute [BPI] Add new LazyBPI analysis 2016-07-28 23:31:12 +00:00
LoopIdiom Target independent codesize heuristics for Loop Idiom Recognition 2016-08-11 18:28:33 +00:00
LoopInterchange [LoopInterchange] Track all dependencies, not just anti dependencies. 2016-09-21 19:16:47 +00:00
LoopLoadElim
LoopReroll [LoopReroll] Make root-finding more aggressive. 2016-11-21 22:35:34 +00:00
LoopRotate
LoopSimplify [LoopSimplify] Preserve LCSSA when removing edges from unreachable blocks. 2016-11-18 21:01:12 +00:00
LoopSimplifyCFG
LoopStrengthReduce Revert r286999 which caused buildbot test failures. Some testcases need to be made target specific. 2016-11-15 19:42:05 +00:00
LoopUnroll [LoopUnroll] Implement profile-based loop peeling 2016-11-30 21:13:57 +00:00
LoopUnswitch [Loop Unswitch] Patch to selective unswitch only the reachable branch instructions. 2016-11-25 14:07:44 +00:00
LoopVectorize [ppc] Correctly compute the cost of loading 32/64 bit memory into VSR 2016-12-03 00:41:43 +00:00
LoopVersioning [LAA] Prevent invalid IR for loop-invariant bound in loop body 2016-12-05 21:25:03 +00:00
LoopVersioningLICM [Loop Vectorizer] Fixed memory confilict checks. 2016-08-28 08:53:53 +00:00
LowerAtomic
LowerExpectIntrinsic [Profile] handle select instruction in 'expect' lowering 2016-09-02 22:03:40 +00:00
LowerGuardIntrinsic [PM] Port LowerGuardIntrinsic to the new PM. 2016-07-28 22:08:41 +00:00
LowerInvoke [PM] Port LowerInvoke to the new pass manager 2016-08-12 17:28:27 +00:00
LowerSwitch
LowerTypeTests [cfi] Fix weak functions handling. 2016-11-11 21:39:26 +00:00
Mem2Reg
MemCpyOpt [MemCpyOpt] Don't emit IR in an unspecified order 2016-11-07 17:47:28 +00:00
MergeFunc
MetaRenamer
NameAnonGlobals [ThinLTO] Ensure anonymous globals renamed even at -O0 2016-09-17 20:40:16 +00:00
NaryReassociate
ObjCARC [ObjCARC] Traverse chain downwards to replace uses of argument passed to 2016-09-13 23:43:11 +00:00
PGOProfile [PGO] Fix PGO use ICE when there are unreachable BBs 2016-12-02 19:10:29 +00:00
PartiallyInlineLibCalls
PhaseOrdering
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH [PruneEH] Be correct in the face IPO 2016-10-03 19:35:30 +00:00
Reassociate Fixed the lost FastMathFlags in Reassociate optimization. 2016-11-22 20:23:04 +00:00
Reg2Mem
RewriteStatepointsForGC [RS4GC] Strengthen coverage: add more tests 2016-10-07 20:34:00 +00:00
SCCP [SCCP] Add a test for switches on undef. 2016-11-23 01:42:39 +00:00
SLPVectorizer Revert "[SLP] Fix for PR6246: vectorization for scalar ops on vector elements." 2016-12-02 16:56:26 +00:00
SROA [DIExpression] Introduce a dedicated DW_OP_LLVM_fragment operation 2016-12-05 18:04:47 +00:00
SafeStack [safestack] Use non-thread-local unsafe stack pointer for Contiki OS 2016-10-14 17:56:00 +00:00
SampleProfile Before sample pgo annotation, do not inline a function that has no debug info. (NFC) 2016-11-22 22:50:01 +00:00
Scalarizer Scalarizer: Support scalarizing intrinsics 2016-07-25 20:02:54 +00:00
SeparateConstOffsetFromGEP
SimplifyCFG [SimplifyCFG] auto-generate better checks; NFC 2016-11-25 21:12:39 +00:00
Sink
SpeculativeExecution SpeculativeExecution: Allow speculating more inst types 2016-10-28 20:00:33 +00:00
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols [opt] Strip coverage if debug info is not present. 2016-10-17 20:05:35 +00:00
StructurizeCFG [StructurizeCFG] Fix infinite loop in rebuildSSA. 2016-11-29 21:49:02 +00:00
TailCallElim Avoid tail recursion elimination across calls with operand bundles 2016-11-07 21:01:49 +00:00
Util [DIExpression] Introduce a dedicated DW_OP_LLVM_fragment operation 2016-12-05 18:04:47 +00:00
WholeProgramDevirt WholeProgramDevirt: generate more detailed and accurate remarks. 2016-08-11 19:09:02 +00:00