llvm-6502/lib/Transforms/Scalar
Chandler Carruth 5b854f1ea5 Re-instate r187323 which fast-tracks promotable allocas as soon as the
SROA-based analysis has enough information. This should work now that
both mem2reg *and* the SSAUpdater-based AllocaPromoter have been updated
to be able to promote the types of allocas that the SROA analysis
detects.

I've included tests for the AllocaPromoter that were only possible to
write once we fast-tracked promotable allocas without rewriting them.
This includes a test both for r187347 and r188145.

Original commit log for r187323:
"""
Now that mem2reg understands how to cope with a slightly wider set of uses of
an alloca, we can pre-compute promotability while analyzing an alloca for
splitting in SROA. That lets us short-circuit the common case of a bunch of
trivially promotable allocas. This cuts 20% to 30% off the run time of SROA for
typical frontend-generated IR sequneces I'm seeing. It gets the new SROA to
within 20% of ScalarRepl for such code. My current benchmark for these numbers
is PR15412, but it fits the general pattern of IR emitted by Clang so it should
be widely applicable.
"""

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188146 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-11 02:17:11 +00:00
..
ADCE.cpp
BasicBlockPlacement.cpp
CMakeLists.txt Factor FlattenCFG out from SimplifyCFG 2013-08-06 02:43:45 +00:00
CodeGenPrepare.cpp Remove trailing whitespace 2013-07-15 17:55:02 +00:00
ConstantProp.cpp
CorrelatedValuePropagation.cpp
DCE.cpp
DeadStoreElimination.cpp
EarlyCSE.cpp
FlattenCFGPass.cpp Factor FlattenCFG out from SimplifyCFG 2013-08-06 02:43:45 +00:00
GlobalMerge.cpp Change tabs to spaces. 2013-07-22 21:11:30 +00:00
GVN.cpp Reimplement isPotentiallyReachable to make nocapture deduction much stronger. 2013-07-27 01:24:00 +00:00
IndVarSimplify.cpp
JumpThreading.cpp JumpThreading: Turn a select instruction into branching if it allows to thread one half of the select. 2013-08-07 10:29:38 +00:00
LICM.cpp
LLVMBuild.txt
LoopDeletion.cpp Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size. 2013-07-14 04:42:23 +00:00
LoopIdiomRecognize.cpp Fix spelling and grammar 2013-07-22 18:59:58 +00:00
LoopInstSimplify.cpp
LoopRotation.cpp
LoopStrengthReduce.cpp
LoopUnrollPass.cpp
LoopUnswitch.cpp Adjust file to the coding standard. 2013-08-06 17:03:42 +00:00
LowerAtomic.cpp
Makefile
MemCpyOptimizer.cpp
Reassociate.cpp Use switch instead of if. No functionality change. 2013-07-22 23:38:16 +00:00
Reg2Mem.cpp
Scalar.cpp Factor FlattenCFG out from SimplifyCFG 2013-08-06 02:43:45 +00:00
ScalarReplAggregates.cpp Thread DataLayout through the callers and into mem2reg. This will be 2013-07-28 06:43:11 +00:00
SCCP.cpp Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size. 2013-07-14 04:42:23 +00:00
SimplifyCFGPass.cpp Revert r188119 "Kill some duplicated code for removing unreachable BBs." 2013-08-10 20:16:06 +00:00
Sink.cpp
SROA.cpp Re-instate r187323 which fast-tracks promotable allocas as soon as the 2013-08-11 02:17:11 +00:00
StructurizeCFG.cpp Add 'const' qualifiers to static const char* variables. 2013-07-16 01:17:10 +00:00
TailRecursionElimination.cpp TRE: Move class into anonymous namespace. 2013-07-24 16:12:08 +00:00