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