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

 

Attachment: 0001-Replace-Inliner-With-Greedy-LLVM-Inliner-Default-OFF.patch
Description: Binary data

Attachment: 0001-Greedy-LLVM-Inliner.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to