llvm-6502/lib/Transforms/Scalar
Zinovy Nis 31713943aa [BUG][INDVAR] Fix for PR21014: wrong SCEV operands commuting for non-commutative instructions
My commit rL216160 introduced a bug PR21014: IndVars widens code 'for (i = ; i < ...; i++) arr[ CONST - i]' into 'for (i = ; i < ...; i++) arr[ i - CONST]'
thus inverting index expression. This patch fixes it. 
Thanks to Jörg Sonnenberger for pointing.

Differential Revision: http://reviews.llvm.org/D5576



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218867 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-02 13:01:15 +00:00
..
ADCE.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:55:47 +00:00
AlignmentFromAssumptions.cpp [AlignmentFromAssumptions] Don't crash just because the target is 32-bit 2014-09-11 08:40:17 +00:00
CMakeLists.txt Add an AlignmentFromAssumptions Pass 2014-09-07 20:05:11 +00:00
ConstantHoisting.cpp ConstantHoisting.cpp: Add <tuple> for std::tie, since r207593 removed FileSystem.h, it includes <tuple>. 2014-04-30 06:44:50 +00:00
ConstantProp.cpp [C++] Use 'nullptr'. Transforms edition. 2014-04-25 05:29:35 +00:00
CorrelatedValuePropagation.cpp Make use of @llvm.assume from LazyValueInfo 2014-09-07 20:29:59 +00:00
DCE.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:55:47 +00:00
DeadStoreElimination.cpp Revert "r214897 - Remove dead zero store to calloc initialized memory" 2014-08-06 19:30:38 +00:00
EarlyCSE.cpp Using a deque to manage the stack of nodes is faster here. 2014-09-20 13:29:20 +00:00
FlattenCFGPass.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:55:47 +00:00
GVN.cpp Make use of @llvm.assume in ValueTracking (computeKnownBits, etc.) 2014-09-07 18:57:58 +00:00
IndVarSimplify.cpp [BUG][INDVAR] Fix for PR21014: wrong SCEV operands commuting for non-commutative instructions 2014-10-02 13:01:15 +00:00
JumpThreading.cpp Allow BB duplication threshold to be adjusted through JumpThreading's ctor 2014-09-24 04:59:06 +00:00
LICM.cpp Fix assertion in LICM doFinalization() 2014-09-24 16:48:31 +00:00
LLVMBuild.txt ScalarOpts/LLVMBuild.txt: Prune unused dependency to IPA. 2014-09-09 15:00:38 +00:00
LoadCombine.cpp Fixing a few -Woverloaded-virtual warnings by exposing the hidden virtual function as well. No functional changes intended. 2014-07-30 19:23:59 +00:00
LoopDeletion.cpp Use range based for loops to avoid needing to re-mention SmallPtrSet size. 2014-08-24 23:23:06 +00:00
LoopIdiomRecognize.cpp Remove extra whitespace in function declaration. No functionality change. 2014-06-14 03:48:29 +00:00
LoopInstSimplify.cpp Make use of @llvm.assume in ValueTracking (computeKnownBits, etc.) 2014-09-07 18:57:58 +00:00
LoopRerollPass.cpp Feeding isSafeToSpeculativelyExecute its DataLayout pointer 2014-07-10 14:41:31 +00:00
LoopRotation.cpp Make use of @llvm.assume in ValueTracking (computeKnownBits, etc.) 2014-09-07 18:57:58 +00:00
LoopStrengthReduce.cpp Use range based for loops to avoid needing to re-mention SmallPtrSet size. 2014-08-24 23:23:06 +00:00
LoopUnrollPass.cpp Add a new pass FunctionTargetTransformInfo. This pass serves as a 2014-09-18 00:34:14 +00:00
LoopUnswitch.cpp Add functions for finding ephemeral values 2014-09-07 13:49:57 +00:00
LowerAtomic.cpp IR: add "cmpxchg weak" variant to support permitted failure. 2014-06-13 14:24:07 +00:00
Makefile
MemCpyOptimizer.cpp Make use of @llvm.assume in ValueTracking (computeKnownBits, etc.) 2014-09-07 18:57:58 +00:00
MergedLoadStoreMotion.cpp [MergedLoadStoreMotion] Move pass enabling option to PassManagerBuilder 2014-09-10 19:55:29 +00:00
PartiallyInlineLibCalls.cpp PartiallyInlineLibCalls: Check sqrt result type before transforming it. 2014-08-01 23:21:21 +00:00
Reassociate.cpp Reassociate x + -0.1234 * y into x - 0.1234 * y 2014-08-21 10:45:30 +00:00
Reg2Mem.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:55:47 +00:00
SampleProfile.cpp SampleProfile.cpp: Prune a stray \param added in r217437. [-Wdocumentation] 2014-09-09 22:44:30 +00:00
Scalar.cpp [C API] Make the 'lower switch' pass available via the C API. 2014-09-11 21:32:32 +00:00
Scalarizer.cpp Add scoped-noalias metadata 2014-07-24 14:25:39 +00:00
ScalarReplAggregates.cpp Move the complex address expression out of DIVariable and into an extra 2014-10-01 18:55:02 +00:00
SCCP.cpp Simplify creation of a bunch of ArrayRefs by using None, makeArrayRef or just letting them be implicitly created. 2014-08-27 05:25:25 +00:00
SeparateConstOffsetFromGEP.cpp Partially revert r210444 due to performance regression 2014-07-16 23:25:00 +00:00
SimplifyCFGPass.cpp [SimplifyCFG] threshold for folding branches with common destination 2014-09-30 22:23:38 +00:00
Sink.cpp Use range based for loops to avoid needing to re-mention SmallPtrSet size. 2014-08-24 23:23:06 +00:00
SROA.cpp Move the complex address expression out of DIVariable and into an extra 2014-10-01 18:55:02 +00:00
StructurizeCFG.cpp Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges." 2014-07-21 17:06:51 +00:00
TailRecursionElimination.cpp We may visit a call that uses an alloca multiple times in callUsesLocalStack, sometimes with IsNocapture true and sometimes with IsNocapture false. We accidentally skipped work we needed to do in the IsNocapture=false case if we were called with IsNocapture=true the first time. Fixes PR20405! 2014-07-23 06:24:49 +00:00