hanchenye-llvm-project/llvm/lib
Chris Lattner 85d9944f9a Reimplement the loopsimplify code which deletes edges from unreachable
blocks that target loop blocks.

Before, the code was run once per loop, and depended on the number of
predecessors each block in the loop had.  Unfortunately, scanning preds can
be really slow when huge numbers of phis exist or when phis with huge numbers
of inputs exist.

Now, the code is run once per function and scans successors instead of preds,
which is far faster.  In addition, the new code is simpler and is goto free,
woo.

This change speeds up a nasty testcase Duraid provided me from taking hours to
taking ~72s with a debug build.  The functionality this implements is already
tested in the testsuite as Transforms/CodeExtractor/2004-03-13-LoopExtractorCrash.ll.

llvm-svn: 29644
2006-08-12 04:51:20 +00:00
..
Analysis Speed up Loop::isLCSSAForm by using a binary search and single-entry cache. 2006-08-02 00:14:16 +00:00
AsmParser These libs use EH info 2006-07-07 16:44:31 +00:00
Bytecode Modify Path::eraseFromDisk to not throw an exception. 2006-07-28 22:29:50 +00:00
CodeGen Switch to using SuperFastHash instead of adding all elements together. This 2006-08-12 01:07:10 +00:00
Debugger Change Path::getStatusInfo to return a boolean and error string on an error 2006-07-28 22:03:44 +00:00
ExecutionEngine Fix handling of asm specifiers for external globals. This unbreaks many programs 2006-07-28 21:11:31 +00:00
Linker Remove a redundant syscall. 2006-07-28 22:52:11 +00:00
Support remove IncludeFile turds in MathExtras.h, which bloats every .o file that 2006-08-11 23:52:54 +00:00
System Remove extraneous #include. 2006-08-07 05:36:24 +00:00
Target eliminate extraneous blank line 2006-08-11 21:08:16 +00:00
Transforms Reimplement the loopsimplify code which deletes edges from unreachable 2006-08-12 04:51:20 +00:00
VMCore Add dominates/properlyDominates queries to IDom. 2006-08-01 22:24:47 +00:00
Makefile Make some changes suggested by Chris: 2006-05-17 22:55:35 +00:00