llvm-6502/lib/Transforms/Utils
Chris Lattner f12f8def39 rewrite the code used to construct pruned SSA form with the IDF method.
In the old way, we computed and inserted phi nodes for the whole IDF of 
the definitions of the alloca, then computed which ones were dead and
removed them.

In the new method, we first compute the region where the value is live,
and use that information to only insert phi nodes that are live.  This
eliminates the need to compute liveness later, and stops the algorithm
from inserting a bunch of phis which it then later removes.

This speeds up the testcase in PR1432 from 2.00s to 0.15s (14x) in a
release build and 6.84s->0.50s (14x) in a debug build.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40825 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-04 22:50:14 +00:00
..
BasicBlockUtils.cpp After a basic block is split into two parts, 2007-07-19 02:29:24 +00:00
BasicInliner.cpp Use SmallPtrSet. 2007-07-27 18:34:27 +00:00
BreakCriticalEdges.cpp Do not preserve ETForest. 2007-06-08 00:02:08 +00:00
CloneFunction.cpp Change uses of Function::front to Function::getEntryBlock for readability. 2007-03-22 16:38:57 +00:00
CloneModule.cpp During module cloning copy aliases too. This fixes PR1544 2007-07-10 19:07:35 +00:00
CloneTrace.cpp Switch inliner over to use DenseMap instead of std::map for ValueMap. This 2007-02-03 00:08:31 +00:00
CodeExtractor.cpp New CallInst interface to address GLIBCXX_DEBUG errors caused by 2007-08-01 03:43:44 +00:00
DemoteRegToStack.cpp Adding ability to demote phi to stack. 2007-07-11 18:41:34 +00:00
InlineCost.cpp Use SmallPtrSet. 2007-07-27 18:34:27 +00:00
InlineFunction.cpp Fix PR1335 and Transforms/Inline/2007-04-15-InlineEH.ll 2007-04-15 21:38:06 +00:00
LCSSA.cpp LCSSA preserves dom info. 2007-07-30 20:23:45 +00:00
Local.cpp Move the GET_SIDE_EFFECT_INFO logic from isInstructionTriviallyDead 2007-07-26 16:06:08 +00:00
LoopSimplify.cpp Verify loop info. 2007-07-19 18:02:32 +00:00
LowerAllocations.cpp More explicit keywords. 2007-08-01 15:32:29 +00:00
LowerInvoke.cpp More explicit keywords. 2007-08-01 15:32:29 +00:00
LowerSelect.cpp More explicit keywords. 2007-08-01 15:32:29 +00:00
LowerSwitch.cpp Fix typo in comment. 2007-05-06 13:37:16 +00:00
Makefile Move some constant folding code shared by Analysis and Transform passes 2005-10-27 15:54:34 +00:00
Mem2Reg.cpp Use DominatorTree instead of ETForest. 2007-06-07 21:57:03 +00:00
PromoteMemoryToRegister.cpp rewrite the code used to construct pruned SSA form with the IDF method. 2007-08-04 22:50:14 +00:00
SimplifyCFG.cpp New CallInst interface to address GLIBCXX_DEBUG errors caused by 2007-08-01 03:43:44 +00:00
UnifyFunctionExitNodes.cpp Drop 'const' 2007-05-03 01:11:54 +00:00
ValueMapper.cpp Fix comments about vectors to use the current wording. 2007-07-16 14:29:03 +00:00
ValueMapper.h Switch inliner over to use DenseMap instead of std::map for ValueMap. This 2007-02-03 00:08:31 +00:00