summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/LoopInfo.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-08-02 00:06:09 +0000
committerChris Lattner <sabre@nondot.org>2006-08-02 00:06:09 +0000
commit5a2bc786be0655287aebec4bfb2dcc6cccd9fd2a (patch)
treea4d2b875a239199066ea84af06a50d340d0a12d4 /llvm/lib/Analysis/LoopInfo.cpp
parent5af6a3ffdb8e7cb8459c07479a8e22320aec7bd1 (diff)
downloadbcm5719-llvm-5a2bc786be0655287aebec4bfb2dcc6cccd9fd2a.tar.gz
bcm5719-llvm-5a2bc786be0655287aebec4bfb2dcc6cccd9fd2a.zip
Replace the SSA update code in LCSSA with a bottom-up approach instead of a top
down approach, inspired by discussions with Tanya. This approach is significantly faster, because it does not need dominator frontiers and it does not insert extraneous unused PHI nodes. For example, on 252.eon, in a release-asserts build, this speeds up LCSSA (which is the slowest pass in gccas) from 9.14s to 0.74s on my G5. This code is also slightly smaller and significantly simpler than the old code. Amusingly, in a normal Release build (which includes the "assert(L->isLCSSAForm());" assertion), asserting that the result of LCSSA is in LCSSA form is actually slower than the LCSSA transformation pass itself on 252.eon. I will see if Loop::isLCSSAForm can be sped up next. llvm-svn: 29463
Diffstat (limited to 'llvm/lib/Analysis/LoopInfo.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud