llvm-6502/test/Transforms
Chandler Carruth 50bc165c54 [SROA] Fix PR18615 with some long overdue simplifications to the bounds
checking in SROA.

The primary change is to just rely on uge for checking that the offset
is within the allocation size. This removes the explicit checks against
isNegative which were terribly error prone (including the reversed logic
that led to PR18615) and prevented us from supporting stack allocations
larger than half the address space.... Ok, so maybe the latter isn't
*common* but it's a silly restriction to have.

Also, we used to try to support a PHI node which loaded from before the
start of the allocation if any of the loaded bytes were within the
allocation. This doesn't make any sense, we have never really supported
loading or storing *before* the allocation starts. The simplified logic
just doesn't care.

We continue to allow loading past the end of the allocation in part to
support cases where there is a PHI and some loads are larger than others
and the larger ones reach past the end of the allocation. We could solve
this a different and more conservative way, but I'm still somewhat
paranoid about this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202224 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-26 03:14:14 +00:00
..
ADCE
ArgumentPromotion
BBVectorize
BranchFolding
CodeExtractor
CodeGenPrepare X86: move test requiring X86TargetLowering info into its own directory 2014-02-19 12:24:19 +00:00
ConstantHoisting/X86
ConstantMerge
ConstProp
CorrelatedValuePropagation
DeadArgElim Fix broken CHECK lines 2014-02-16 07:31:05 +00:00
DeadStoreElimination
DebugIR
EarlyCSE
FunctionAttrs
GCOVProfiling
GlobalDCE
GlobalOpt
GVN
IndVarSimplify
Inline
InstCombine Make sure that value handle users see the transformation of an indirect call to a direct call. This is important for the CallGraph iteration. Patch by Björn Steinbrink! 2014-02-20 23:00:15 +00:00
InstSimplify
Internalize
IPConstantProp
JumpThreading
LCSSA
LICM
LoopDeletion
LoopIdiom
LoopReroll
LoopRotate
LoopSimplify
LoopStrengthReduce SCEVExpander: Try hard not to create derived induction variables in other loops 2014-02-16 15:49:50 +00:00
LoopUnroll
LoopUnswitch
LoopVectorize LoopVectorizer: Keep track of conditional store basic blocks 2014-02-08 20:41:13 +00:00
LowerAtomic
LowerExpectIntrinsic
LowerInvoke
LowerSwitch
Mem2Reg
MemCpyOpt
MergeFunc
MetaRenamer
ObjCARC
PhaseOrdering
PruneEH
Reassociate
Reg2Mem
SampleProfile
Scalarizer
ScalarRepl
SCCP
SimplifyCFG
Sink
SLPVectorizer SLPVectorizer: Try vectorizing 'splat' stores 2014-02-24 19:52:29 +00:00
SROA [SROA] Fix PR18615 with some long overdue simplifications to the bounds 2014-02-26 03:14:14 +00:00
StripSymbols
StructurizeCFG
TailCallElim
TailDup