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 Revert my previous patch to ABCD and fix things the right way. There are two problems addressed 2009-11-09 00:44:44 +00:00
ADCE Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
ArgumentPromotion Make opt default to not adding a target data string and update tests that depend on target data to supply it within the test 2009-11-03 15:29:06 +00:00
BlockPlacement Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
BranchFolding Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
CodeExtractor Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
CodeGenPrepare Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
ConstantMerge Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
ConstProp Fix PR5551 by not ignoring the top level constantexpr when 2009-12-04 06:29:29 +00:00
DeadArgElim Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
DeadStoreElimination Cleanup/remove some parts of the lifetime region handling code in memdep and GVN, 2009-12-02 07:35:19 +00:00
FunctionAttrs Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
GlobalDCE Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
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 implement a nice little efficiency hack in the inliner. Since we're now 2009-11-12 07:56:08 +00:00
InstCombine Generalize this optimization to work on equality comparisons between any two 2009-12-05 05:00:00 +00:00
Internalize Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
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 Trim a bunch of unneeded code from this testcase. 2009-11-10 01:33:08 +00:00
LICM Add a test for the fix in revision 91009. 2009-12-10 21:11:40 +00:00
LoopDeletion Make LoopDeletion check the maximum backedge taken count, rather than the 2009-10-23 17:10:01 +00:00
LoopIndexSplit Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
LoopRotate Make Loop::getLoopLatch() work on loops which don't have preheaders, as 2009-11-20 20:51:18 +00:00
LoopSimplify Make Loop::getLoopLatch() work on loops which don't have preheaders, as 2009-11-20 20:51:18 +00:00
LoopStrengthReduce Generalize OptimizeLoopTermCond to optimize more loop terminating icmp to use postinc iv. 2009-11-17 18:10:11 +00:00
LoopUnroll Teach getSmallConstantTripMultiple about Shl operators. 2009-11-20 01:09:34 +00:00
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 Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
LowerSetJmp Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
LowerSwitch Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
Mem2Reg fix a bug exposed by moving SRoA earlier which caused a crash building kc++ 2009-11-02 04:37:17 +00:00
MemCpyOpt Make opt default to not adding a target data string and update tests that depend on target data to supply it within the test 2009-11-03 15:29:06 +00:00
MergeFunc Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
PruneEH Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
Reassociate Convert more tests to avoid llvm-as. 2009-09-11 18:36:27 +00:00
ScalarRepl Revise scalar replacement to be more flexible about handle bitcasts and GEPs. 2009-12-11 23:47:40 +00:00
SCCP fix a crash in SCCP handling extractvalue of an array, pointed out and 2009-11-10 22:02:09 +00:00
SimplifyCFG Optimize test more. 2009-11-10 21:02:18 +00:00
SimplifyLibCalls Teach SimplifyLibCalls to fold memcmp calls with constant arguments. 2009-11-05 17:44:22 +00:00
SRETPromotion Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
SSI Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
StripSymbols Update test. 2009-09-09 02:41:50 +00:00
TailCallElim Improve tail call elimination to handle the switch statement. 2009-11-07 21:10:15 +00:00
TailDup Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00