A module inliner pass with a greedy call site queue
Yin Ma
yinma at codeaurora.org
Mon Jul 28 15:49:50 PDT 2014
Hello,
This patch is an implementation of module inliner pass with a greedy call
site queue. This
greedy inliner reuses the existing SCC inliner to do the local decision and
inlining work. It can
improve Aarch64 SPEC2000 eon 16% and mesa 5% compared with LLVM with default
inliner on
a real cortex-a53 devices. (-O3 -mllvm -inline-perf-mode=true -mllvm
-greedy-inliner=true)
Compared with SCC inliner, which is bottom up fixed order, the greedy
inliner utilizes a global
Call site queue with greedy weight computation algorithm to provide more
flexible in the call
site decision. It can be implemented as top-down order or any other order
you like to do inlining
work. And the speed of greedy inliner is almost as same as the SCC inliner.
Because the different
order setup, this inliner could be an alternative solution to bring up
performance or reduce code
size. In our experiment, this greedy inliner also did better jobs in -Os
mode over the default LLVM
inliner.
It contains the clang changes. Please give a review.
Thanks,
Yin Ma
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140728/de0a1048/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Replace-Inliner-With-Greedy-LLVM-Inliner-Default-OFF.patch
Type: application/octet-stream
Size: 1984 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140728/de0a1048/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Greedy-LLVM-Inliner.patch
Type: application/octet-stream
Size: 50892 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140728/de0a1048/attachment-0001.obj>
More information about the cfe-commits
mailing list