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
0001-Replace-Inliner-With-Greedy-LLVM-Inliner-Default-OFF.patch
Description: Binary data
0001-Greedy-LLVM-Inliner.patch
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
