llvm/test/Transforms
Sanjoy Das edb273f9ae Re-apply r251050 with a for PR25421
The bug: I missed adding break statements in the switch / case.

Original commit message:

[SCEV] Teach SCEV some axioms about non-wrapping arithmetic

Summary:
 - A s<  (A + C)<nsw> if C >  0
 - A s<= (A + C)<nsw> if C >= 0
 - (A + C)<nsw> s<  A if C <  0
 - (A + C)<nsw> s<= A if C <= 0

Right now `C` needs to be a constant, but we can later generalize it to
be a non-constant if needed.

Reviewers: atrick, hfinkel, reames, nlewycky

Subscribers: sanjoy, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252236 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-05 23:45:38 +00:00
..
ADCE [PM] Port ADCE to the new pass manager 2015-10-30 23:13:18 +00:00
AddDiscriminators DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
AlignmentFromAssumptions
ArgumentPromotion DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
AtomicExpand
BBVectorize
BDCE
BranchFolding
CodeExtractor
CodeGenPrepare [CodegenPrepare] Do not rematerialize gc.relocates across different basic blocks 2015-11-03 18:37:40 +00:00
ConstantHoisting
ConstantMerge
ConstProp
CorrelatedValuePropagation [CVP] Fold return values if possible 2015-11-04 01:43:54 +00:00
DeadArgElim DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
DeadStoreElimination DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
EarlyCSE
EliminateAvailableExternally
Float2Int
FunctionAttrs
GCOVProfiling DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
GlobalDCE
GlobalOpt
GVN DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
IndVarSimplify Re-apply r251050 with a for PR25421 2015-11-05 23:45:38 +00:00
Inline DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
InstCombine DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
InstMerge
InstSimplify [InstSimplify] sgt on i1s also encodes implication 2015-10-29 03:19:10 +00:00
Internalize
IPConstantProp
IRCE
JumpThreading [JumpThreading] Use dominating conditions to prove implications 2015-10-28 21:27:08 +00:00
LCSSA
LICM Revert "r251451 - [AliasSetTracker] Use mod/ref information for UnknownInstr" 2015-10-28 22:13:41 +00:00
LoadCombine
LoopDeletion
LoopDistribute
LoopIdiom DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
LoopInterchange
LoopLoadElim LLE 6/6: Add LoopLoadElimination pass 2015-11-03 23:50:08 +00:00
LoopReroll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
LoopRotate DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
LoopSimplify DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
LoopStrengthReduce [ScalarEvolutionExpander] PHI on a catchpad can be used on both edges 2015-10-27 19:48:28 +00:00
LoopUnroll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
LoopUnswitch
LoopVectorize DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
LowerAtomic
LowerBitSets
LowerExpectIntrinsic [PM] Port StripDeadPrototypes to the new pass manager 2015-10-30 23:28:12 +00:00
LowerInvoke
LowerSwitch
Mem2Reg DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
MemCpyOpt
MergeFunc
MetaRenamer
NaryReassociate
ObjCARC DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
PartiallyInlineLibCalls
PhaseOrdering
PlaceSafepoints
PruneEH
Reassociate
Reg2Mem
RewriteStatepointsForGC
SafeStack DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
SampleProfile DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
Scalarizer DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
ScalarRepl DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
SCCP
SeparateConstOffsetFromGEP
SimplifyCFG DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
Sink
SLPVectorizer DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
SpeculativeExecution
SROA
StraightLineStrengthReduce
StripDeadPrototypes [PM] Port StripDeadPrototypes to the new pass manager 2015-10-30 23:28:12 +00:00
StripSymbols DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
StructurizeCFG
TailCallElim
TailDup
Util