llvm-6502/lib/Transforms/Scalar
Dan Gohman 5be18e8476 Teach SCEVExpander to expand arithmetic involving pointers into GEP
instructions. It attempts to create high-level multi-operand GEPs,
though in cases where this isn't possible it falls back to casting
the pointer to i8* and emitting a GEP with that. Using GEP instructions
instead of ptrtoint+arithmetic+inttoptr helps pointer analyses that
don't use ScalarEvolution, such as BasicAliasAnalysis.

Also, make the AddrModeMatcher more aggressive in handling GEPs.
Previously it assumed that operand 0 of a GEP would require a register
in almost all cases. It now does extra checking and can do more
matching if operand 0 of the GEP is foldable. This fixes a problem
that was exposed by SCEVExpander using GEPs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72093 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-19 02:15:55 +00:00
..
ADCE.cpp Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00
BasicBlockPlacement.cpp
CMakeLists.txt
CodeGenPrepare.cpp Restore minor deletion. 2009-05-04 18:40:41 +00:00
CondPropagate.cpp Avoid making the transformation enabled by my last patch if the new destinations have phi nodes. 2009-04-15 00:43:54 +00:00
ConstantProp.cpp
DCE.cpp
DeadStoreElimination.cpp Rename PaddedSize to AllocSize, in the hope that this 2009-05-09 07:06:46 +00:00
GVN.cpp Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00
GVNPRE.cpp
IndVarSimplify.cpp Teach SCEVExpander to expand arithmetic involving pointers into GEP 2009-05-19 02:15:55 +00:00
InstructionCombining.cpp calls in nothrow functions can be marked nothrow even if the callee 2009-05-13 17:39:14 +00:00
JumpThreading.cpp Restore minor deletion. 2009-05-04 18:40:41 +00:00
LICM.cpp Revert r67798: it breaks llvm-gcc bootstrap on x86-64-linux, presumably due to 2009-03-27 14:56:47 +00:00
LoopDeletion.cpp Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00
LoopIndexSplit.cpp Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00
LoopRotation.cpp
LoopStrengthReduce.cpp Teach SCEVExpander to expand arithmetic involving pointers into GEP 2009-05-19 02:15:55 +00:00
LoopUnroll.cpp Adjust loop size estimate for full unrolling; 2009-04-20 22:19:33 +00:00
LoopUnswitch.cpp Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00
Makefile
MemCpyOptimizer.cpp Rename PaddedSize to AllocSize, in the hope that this 2009-05-09 07:06:46 +00:00
PredicateSimplifier.cpp
Reassociate.cpp Make the key of ValueRankMap an AssertingVH, so that we die violently 2009-03-31 22:13:29 +00:00
Reg2Mem.cpp
Scalar.cpp
ScalarReplAggregates.cpp Rename PaddedSize to AllocSize, in the hope that this 2009-05-09 07:06:46 +00:00
SCCP.cpp Factorize out a concept - no functionality change. 2009-03-21 21:27:31 +00:00
SimplifyCFGPass.cpp
SimplifyHalfPowrLibCalls.cpp
SimplifyLibCalls.cpp Fix PR4206 - crash in simplify lib calls 2009-05-13 06:26:11 +00:00
TailDuplication.cpp Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00
TailRecursionElimination.cpp Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00