summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenFunction.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2011-01-14 08:21:08 +0000
committerChris Lattner <sabre@nondot.org>2011-01-14 08:21:08 +0000
commit8d7716a220f2b57c497c5488a9d1bd7ea4d8a5bc (patch)
tree351bd0ba62597f279815c80e1cfc23929f12fd48 /clang/lib/CodeGen/CodeGenFunction.cpp
parent9987a6f49b42816946e847078c95f07c71a0f845 (diff)
downloadbcm5719-llvm-8d7716a220f2b57c497c5488a9d1bd7ea4d8a5bc.tar.gz
bcm5719-llvm-8d7716a220f2b57c497c5488a9d1bd7ea4d8a5bc.zip
switch the second scalarrepl pass to use SSAUpdater. We run two scalarrepl passes: one
early in the cleanup code and one late interlaced with the inliner. The second one is important because inlining and other scalar optzns can unpin allocas, allowing them to be split up and promoted. While important for performance, this is also relatively rare, and we would previously force a (non-lazy) computation of DomFrontiers, which happened even if nothing became unpinned. With this patch, the first pass of scalarrepl still promotes the vast bulk of allocas in programs, but hte second pass has changed to use SSAUpdater, which is more "sparse" and lazy. This speeds up opt -O3 time on kimwitu++ (a c++ app) by about 1%. The numbers are interesting: the first pass promotes ~17500 allocas. The second pass promotes about 1600. For non-C++ codes, the compile time win should be greater, because the second pass of scalarrepl does less. llvm-svn: 123437
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud