llvm-6502/test/Transforms
Sanjoy Das 574e01c32e Teach ScalarEvolution to exploit min and max expressions when proving
isKnownPredicate.

The motivation for this change is to optimize away checks in loops
like this:

    limit = min(t, len)
    for (i = 0 to limit)
      if (i >= len || i < 0) throw_array_of_of_bounds();
      a[i] = ...

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224285 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-15 22:50:15 +00:00
..
ADCE
AddDiscriminators IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
AlignmentFromAssumptions [AlignmentFromAssumptions] Don't crash just because the target is 32-bit 2014-09-11 08:40:17 +00:00
ArgumentPromotion IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
AtomicExpand/ARM Use target-dependent emitLeading/TrailingFence instead of the target-independent insertLeading/TrailingFence (in AtomicExpandPass) 2014-09-03 21:01:03 +00:00
BBVectorize IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
BranchFolding Delete -std-compile-opts. 2014-10-16 20:00:02 +00:00
CodeExtractor
CodeGenPrepare [CodeGenPrepare][AArch64] Fix a TLI legality check on iPTR to use a lowered instead. 2014-11-12 22:16:55 +00:00
ConstantHoisting
ConstantMerge
ConstProp Fix a bug around truncating vector in const prop. 2014-08-21 02:12:35 +00:00
CorrelatedValuePropagation LazyValueInfo: Actually re-visit partially solved block-values in solveBlockValue() 2014-11-25 17:23:05 +00:00
DeadArgElim IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
DeadStoreElimination IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
EarlyCSE Tweak EarlyCSE to recognize series of dead stores 2014-11-18 17:46:32 +00:00
FunctionAttrs Normally an 'optnone' function goes through fast-isel, which does not 2014-11-03 18:19:26 +00:00
GCOVProfiling IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
GlobalDCE GlobalDCE: Don't drop any COMDAT members 2014-10-07 07:07:19 +00:00
GlobalOpt IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
GVN IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
IndVarSimplify Teach ScalarEvolution to exploit min and max expressions when proving 2014-12-15 22:50:15 +00:00
Inline IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
InstCombine IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
InstMerge Added a test related to 224247 revision 2014-12-15 14:14:10 +00:00
InstSimplify InstSimplify: Remove usesless %a parameter from tests 2014-12-11 12:56:17 +00:00
Internalize Use "weak alias" instead of "alias weak" 2014-07-30 22:51:54 +00:00
IPConstantProp
JumpThreading IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
LCSSA
LICM IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
LoadCombine Use AA in LoadCombine 2014-11-03 23:19:16 +00:00
LoopDeletion
LoopIdiom IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
LoopReroll
LoopRotate IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
LoopSimplify FileCheckize. NFC. 2014-09-12 17:55:16 +00:00
LoopStrengthReduce IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
LoopUnroll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
LoopUnswitch
LoopVectorize IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
LowerAtomic
LowerExpectIntrinsic IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
LowerInvoke
LowerSwitch Added test for commit r212802 that was missing 2014-07-11 10:36:00 +00:00
Mem2Reg IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
MemCpyOpt Allow call-slop optzn for destinations with a suitable dereferenceable attribute 2014-10-16 19:43:08 +00:00
MergeFunc IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
MetaRenamer Use "weak alias" instead of "alias weak" 2014-07-30 22:51:54 +00:00
ObjCARC IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
PartiallyInlineLibCalls PartiallyInlineLibCalls: Check sqrt result type before transforming it. 2014-08-01 23:21:21 +00:00
PhaseOrdering
PruneEH
Reassociate Revert "[Reassociate] As the expression tree is rewritten make sure the operands are" 2014-11-19 23:21:20 +00:00
Reg2Mem
SampleProfile IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
Scalarizer IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
ScalarRepl IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
SCCP SCCP: overdefined calls cannot become constant 2014-11-07 08:54:19 +00:00
SeparateConstOffsetFromGEP/NVPTX [SeparateConstOffsetFromGEP] Fixed a bug related to unsigned modulo 2014-10-25 18:34:03 +00:00
SimplifyCFG IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
Sink
SLPVectorizer IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
SROA SROA: The alloca type isn't a candidate promotion type for vectors 2014-11-21 02:34:55 +00:00
StripSymbols IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
StructurizeCFG StructurizeCFG: Use LoopInfo analysis for better loop detection 2014-12-03 04:28:32 +00:00
TailCallElim Fix tail recursion elimination 2014-11-19 13:32:51 +00:00
TailDup
Util [SwitchLowering] Handle destinations on multiple phi instructions 2014-12-02 18:31:53 +00:00