summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-08-12 04:51:20 +0000
committerChris Lattner <sabre@nondot.org>2006-08-12 04:51:20 +0000
commit85d9944f9a08edcef715674a819af8d636085898 (patch)
treeba449215bdf35394197006df8bdb01c610c5a5fa /llvm/lib/Analysis
parent9fd1027b4c217393c5e071ac5bd0c1684dfcfd93 (diff)
downloadbcm5719-llvm-85d9944f9a08edcef715674a819af8d636085898.tar.gz
bcm5719-llvm-85d9944f9a08edcef715674a819af8d636085898.zip
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
Diffstat (limited to 'llvm/lib/Analysis')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud