llvm-mirror/lib/Transforms
Chris Lattner 87f1ce9b96 This changes the PromoteMemToReg function to create "pruned" SSA form, not
"minimal" SSA form (in other words, it doesn't insert dead PHIs).  This
speeds up the mem2reg pass very significantly because it doesn't have to
do a lot of frivolous work in many common cases.

In the 252.eon function I have been playing with, this doesn't even insert
the 120 PHI nodes that it used to which were trivially dead (in the process
of promoting 356 alloca instructions overall).  This speeds up the mem2reg
pass from 1.2459s to 0.1284s.  More significantly, the DCE pass used to take
2.4138s to remove the 120 dead PHI nodes that mem2reg constructed, now it
takes 0.0134s (which is the time to scan the function and decide that there
is nothing dead).  So overall, on this one function, we speed things up a
total of 3.5179s, which is a 24.8x speedup!  :)

This change is tested by the Mem2Reg/2003-10-05-DeadPHIInsertion.ll test,
which now passes.

llvm-svn: 8884
2003-10-05 22:19:20 +00:00
..
Hello Initial checkin of the "Hello World" Pass. 2002-08-08 20:10:38 +00:00
Instrumentation Use global *_iterator 2003-09-24 22:07:33 +00:00
IPO Credits are now in top-level CREDITS.TXT 2003-09-22 21:57:15 +00:00
Scalar Change the interface to PromoteMemToReg to also take a DominatorTree 2003-10-05 21:20:13 +00:00
Utils This changes the PromoteMemToReg function to create "pruned" SSA form, not 2003-10-05 22:19:20 +00:00
ExprTypeConvert.cpp Spell `necessary' correctly. 2003-08-18 14:43:39 +00:00
LevelRaise.cpp Prototype for creator function got moved 2003-09-01 20:45:33 +00:00
Makefile Convert DIRS to PARALLEL_DIRS. They can be built independently. 2002-09-29 11:52:14 +00:00
TransformInternals.cpp avoid dividing by zero when dealing with zero sized types (like [0 x double]) 2003-06-23 17:36:49 +00:00
TransformInternals.h The word dependent' has no a'. 2003-08-21 22:14:26 +00:00