llvm-6502/lib/Transforms/Scalar
Chris Lattner 145c532e68 Enhance SRoA to be more aggressive about scalarization of aggregate allocas
that have PHI or select uses of their element pointers.  This can often happen
when instcombine sinks two loads into a successor, inserting a phi or select.

With this patch, we can scalarize the alloca, but the pinned elements are not
yet promoted.  This is still a win for large aggregates where only one element
is used.  This fixes rdar://8904039 and part of rdar://7339113 (poor codegen
on stringswitch).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124070 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-23 08:27:54 +00:00
..
ADCE.cpp
BasicBlockPlacement.cpp
CMakeLists.txt
CodeGenPrepare.cpp fix rdar://8878965, a regression I introduced with the recent 2011-01-18 20:53:04 +00:00
ConstantProp.cpp
CorrelatedValuePropagation.cpp
DCE.cpp
DeadStoreElimination.cpp Remove code for updating dominance frontiers and some outdated references to 2011-01-18 04:11:31 +00:00
EarlyCSE.cpp
GEPSplitter.cpp
GVN.cpp
IndVarSimplify.cpp
JumpThreading.cpp
LICM.cpp
LoopDeletion.cpp Remove code for updating dominance frontiers and some outdated references to 2011-01-18 04:11:31 +00:00
LoopIdiomRecognize.cpp
LoopInstSimplify.cpp
LoopRotation.cpp
LoopStrengthReduce.cpp Remove code for updating dominance frontiers and some outdated references to 2011-01-18 04:11:31 +00:00
LoopUnrollPass.cpp
LoopUnswitch.cpp
LowerAtomic.cpp
Makefile
MemCpyOptimizer.cpp Actually check memcpy lengths, instead of just commenting about 2011-01-21 22:07:57 +00:00
Reassociate.cpp
Reg2Mem.cpp
Scalar.cpp Remove outdated references to dominance frontiers. 2011-01-18 03:53:26 +00:00
ScalarReplAggregates.cpp Enhance SRoA to be more aggressive about scalarization of aggregate allocas 2011-01-23 08:27:54 +00:00
SCCP.cpp SCCP doesn't actually preserve the CFG. It will delete and insert terminator 2011-01-21 08:38:09 +00:00
SimplifyCFGPass.cpp
SimplifyHalfPowrLibCalls.cpp
SimplifyLibCalls.cpp
Sink.cpp
TailDuplication.cpp
TailRecursionElimination.cpp