llvm-6502/test/Transforms
Bob Wilson 73a1b67cb9 Revise scalar replacement to be more flexible about handle bitcasts and GEPs.
While scanning through the uses of an alloca, keep track of the current offset
relative to the start of the alloca, and check memory references to see if
the offset & size correspond to a component within the alloca.  This has the
nice benefit of unifying much of the code from isSafeUseOfAllocation,
isSafeElementUse, and isSafeUseOfBitCastedAllocation.  The code to rewrite
the uses of a promoted alloca, after it is determined to be safe, is
reorganized in the same way.

Also, when rewriting GEP instructions, mark them as "in-bounds" since all the
indices are known to be safe.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91184 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-11 23:47:40 +00:00
..
ABCD
ADCE
ArgumentPromotion
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare
ConstantMerge
ConstProp Fix PR5551 by not ignoring the top level constantexpr when 2009-12-04 06:29:29 +00:00
DeadArgElim
DeadStoreElimination Cleanup/remove some parts of the lifetime region handling code in memdep and GVN, 2009-12-02 07:35:19 +00:00
FunctionAttrs
GlobalDCE
GlobalOpt Teach GlobalOpt to delete aliases with internal linkage (after 2009-12-08 10:10:20 +00:00
GVN Fix PR5744, a case where we were getting the pointer size instead of the 2009-12-10 00:11:45 +00:00
IndVarSimplify Make getUniqueExitBlocks's precondition assert more precise, to 2009-12-11 20:05:23 +00:00
Inline
InstCombine Generalize this optimization to work on equality comparisons between any two 2009-12-05 05:00:00 +00:00
Internalize
IPConstantProp Fix a use of an invalidated iterator in the case where there are multiple 2009-11-23 16:13:39 +00:00
JumpThreading fix PR5698 2009-12-06 17:17:23 +00:00
LCSSA
LICM Add a test for the fix in revision 91009. 2009-12-10 21:11:40 +00:00
LoopDeletion
LoopIndexSplit
LoopRotate
LoopSimplify
LoopStrengthReduce
LoopUnroll
LoopUnswitch Reverting patch in revision 89758, initial attempt at fixing PR5373 has proven to be bogus. 2009-11-25 05:38:41 +00:00
LowerInvoke
LowerSetJmp
LowerSwitch
Mem2Reg
MemCpyOpt
MergeFunc
PruneEH
Reassociate
ScalarRepl Revise scalar replacement to be more flexible about handle bitcasts and GEPs. 2009-12-11 23:47:40 +00:00
SCCP
SimplifyCFG
SimplifyLibCalls
SRETPromotion
SSI
StripSymbols
TailCallElim
TailDup