llvm-6502/lib/Transforms/Scalar
Dan Gohman 2276a7bc8e Teach instcombine's visitLoad to scan back several instructions
to find opportunities for store-to-load forwarding or load CSE,
in the same way that visitStore scans back to do DSE. Also, define
a new helper function for testing whether the addresses of two
memory accesses are known to have the same value, and use it in
both visitStore and visitLoad.

These two changes allow instcombine to eliminate loads in code
produced by front-ends that frequently emit obviously redundant
addressing for memory references.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57608 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15 23:19:35 +00:00
..
ADCE.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
BasicBlockPlacement.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
CMakeLists.txt Initial support for the CMake build system. 2008-09-22 01:08:49 +00:00
CodeGenPrepare.cpp Commit CodeGenPrepare.cpp changes which was accidentially left out of 56526. 2008-09-24 06:48:55 +00:00
CondPropagate.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
ConstantProp.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
DCE.cpp Decrementing the iterator here could be wrong if the worklist is empty after the "erase". 2008-09-18 23:04:18 +00:00
DeadStoreElimination.cpp Factorize code: remove variants of "strip off 2008-10-01 15:25:41 +00:00
GVN.cpp fix memleak by cleaning the global sets on pass exit 2008-10-10 16:25:50 +00:00
GVNPRE.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
IndVarSimplify.cpp fix white spaces. 2008-09-10 14:49:55 +00:00
InstructionCombining.cpp Teach instcombine's visitLoad to scan back several instructions 2008-10-15 23:19:35 +00:00
JumpThreading.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
LICM.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
LoopDeletion.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
LoopIndexSplit.cpp Check loop exit predicate properly while eliminating one iteration loop. 2008-10-10 22:02:57 +00:00
LoopRotation.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
LoopStrengthReduce.cpp Call ScalarEvolution's deleteValueFromRecords before deleting an 2008-10-01 02:02:03 +00:00
LoopUnroll.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
LoopUnswitch.cpp Implement function notes as function attributes. 2008-09-26 23:51:19 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
MemCpyOptimizer.cpp s/ParameterAttributes/Attributes/g 2008-09-23 23:03:40 +00:00
PredicateSimplifier.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
Reassociate.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
Reg2Mem.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
Scalar.cpp C and Objective Caml bindings for mem2reg and reg2mem. 2008-03-20 17:16:03 +00:00
ScalarReplAggregates.cpp Allow scalarrepl to treat an all-zero GEP just as bitcast. 2008-10-06 16:23:31 +00:00
SCCP.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
SimplifyCFGPass.cpp Large mechanical patch. 2008-09-25 21:00:45 +00:00
SimplifyLibCalls.cpp Add intrinsic forms of pow and exp2. The non-intrinsic 2008-09-04 18:30:46 +00:00
TailDuplication.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
TailRecursionElimination.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00