llvm-6502/lib/Transforms/Utils
Chris Lattner 0fd77a579b Rewrite all the 'PromoteLocallyUsedAlloca[s]' logic. With the power of
LargeBlockInfo, we can now dramatically simplify their implementation
and speed them up at the same time.  Now the code has time proportional
to the number of uses of the alloca, not the size of the block.

This also eliminates code that tried to batch up different allocas which
are used in the same blocks, and eliminates the 'retry list' logic which
was baroque and no unneccesary.  In addition to being a speedup for crazy
cases, this is also a nice cleanup:

PromoteMemoryToRegister.cpp |  270 +++++++++++++++-----------------------------
 1 file changed, 96 insertions(+), 174 deletions(-)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58229 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27 07:05:53 +00:00
..
BasicBlockUtils.cpp SplitBlock should only attempt to update LoopInfo if it is actually being used. 2008-10-03 06:55:35 +00:00
BasicInliner.cpp Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
BreakCriticalEdges.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
CloneFunction.cpp Correctly set attributes when removing args during cloning. Fixes PR2765 2008-10-07 18:08:38 +00:00
CloneLoop.cpp Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989 2008-04-25 16:53:59 +00:00
CloneModule.cpp Don't drop alignment on globals when cloning. 2008-10-09 06:27:14 +00:00
CloneTrace.cpp Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989 2008-04-25 16:53:59 +00:00
CMakeLists.txt Initial support for the CMake build system. 2008-09-22 01:08:49 +00:00
CodeExtractor.cpp Use Instruction::eraseFromParent(). 2008-06-21 22:08:46 +00:00
DemoteRegToStack.cpp Fix warning when assertions disabled. 2008-06-21 19:49:01 +00:00
InlineCost.cpp Rename isWeakForLinker to mayBeOverridden. Use it 2008-09-29 11:25:42 +00:00
InlineFunction.cpp Large mechanical patch. 2008-09-25 21:00:45 +00:00
InstructionNamer.cpp Add a new trivial -inst-namer pass which makes it possible to diff the 2008-08-23 06:07:02 +00:00
LCSSA.cpp Change create*Pass factory functions to return Pass* instead of 2008-10-22 23:32:42 +00:00
Local.cpp Use Instruction::eraseFromParent(). 2008-06-21 22:08:46 +00:00
LoopSimplify.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
LowerAllocations.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
LowerInvoke.cpp Large mechanical patch. 2008-09-25 21:00:45 +00:00
LowerSwitch.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
Mem2Reg.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
PromoteMemoryToRegister.cpp Rewrite all the 'PromoteLocallyUsedAlloca[s]' logic. With the power of 2008-10-27 07:05:53 +00:00
SimplifyCFG.cpp Nick Lewycky's patch. 2008-10-03 18:57:37 +00:00
UnifyFunctionExitNodes.cpp Enable first-class aggregates support. 2008-07-23 00:34:11 +00:00
UnrollLoop.cpp Add <cstdio> include where needed by gcc-4.4. 2008-10-08 07:23:46 +00:00
ValueMapper.cpp rewrite operand loops to use iterators 2008-05-30 21:24:22 +00:00