Liqiang Tao via llvm-dev
2021-Feb-08 13:26 UTC
[llvm-dev] [GSoC] Improve inlining using inter-procedural analysis or profile
To Whom it May Concern, I am Liqiang Tao, a graduate student in the Graduate School of Arts and Sciences of the University of Tokyo. First, I would like to talk about my interests here. When I saw the Open Projects page, I was attracted by this area.> Moreover, we want to explore the case that is helpful to group stronglyrelated functions together and optimize them as a group instead of displaying them individually. I consider whether it is possible to inline some related methods to improve performance. Then I found a paper[1]. In this paper, the methods are inlined by clusters rather than individuals. The profile and IR size are applied to decide inline or not. I also noticed that the profile directed inlining, as a todo item, also appears in the Open Projects page. It might be a nice start, right? Besides, if possible, I am also interested in applying inter-procedural analysis or static analysis to guide inlining. Unfortunately, I didn't find any paper about this idea. Could you please provide me with some suggestions about this? Is there any process related to these ideas in LLVM? As for my background relevant to this project: * I am participating in porting V8 to RISC-V from July, 2020. https://github.com/v8-riscv/v8 * Recently, I began learning the inliner code in LLVM. And I also tried to create my own pass to be familiar with LLVM infrastructure. Looking forward to more discussions, Best Wishes, Liqiang Tao [1] An Optimization-Driven Incremental Inline Substitution Algorithm for Just-In-Time Compilers https://dl.acm.org/doi/10.5555/3314872.3314893 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210208/4b39eb71/attachment.html>
Jakub (Kuba) Kuderski via llvm-dev
2021-Feb-08 19:57 UTC
[llvm-dev] [GSoC] Improve inlining using inter-procedural analysis or profile
Hi Liqiang, Here are some papers that may be loosely related to the problem you described, without any particular order: 1. Automatic construction of inlining heuristics using machine learning, Sameer Kulkarni et al., 2013 https://dl.acm.org/doi/10.1109/CGO.2013.6495004 2. Adaptive online context-sensitive inlining, Kim Hazelwood, David Grove, 2003 http://www.cs.cmu.edu/afs/cs/academic/class/15745-s07/www/papers/hazelwood-cgo03.pdf 3. An Adaptive Strategy for Inline Substitution, Keith Cooper et al., 2008 https://link.springer.com/chapter/10.1007/978-3-540-78791-4_5 4. Automatic Tuning of Inlining Heuristics, John Cavazos, Michael F.P. O’Boyle, 2005 https://www.eecis.udel.edu/~cavazos/cpc-2006.pdf 5. Towards Better Inlining Decisions Using Inlining Trials, Jeffrey Dean, Craig Chambers, 1994 https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.50.1043&rep=rep1&type=pdf 6. Exploiting Hardware Performance Counters with Flow and Context Sensitive Profiling, Glenn Ammons et al., 1997 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.45.2010 7. Boosting Inlining Heuristics, Nuno Lopes, 2010 https://web.ist.utl.pt/nuno.lopes/pubs/inline-stats10.pdf -Jakub On Mon, Feb 8, 2021 at 8:26 AM Liqiang Tao via llvm-dev < llvm-dev at lists.llvm.org> wrote:> To Whom it May Concern, > > I am Liqiang Tao, a graduate student in the Graduate School of Arts and > Sciences of the University of Tokyo. > > First, I would like to talk about my interests here. When I saw the Open > Projects page, I was attracted by this area. > > > Moreover, we want to explore the case that is helpful to group strongly > related functions together and optimize them as a group instead of > displaying them individually. I consider whether it is possible to inline > some related methods to improve performance. > > Then I found a paper[1]. In this paper, the methods are inlined by > clusters rather than individuals. The profile and IR size are applied to > decide inline or not. I also noticed that the profile directed inlining, as > a todo item, also appears in the Open Projects page. It might be a nice > start, right? > > Besides, if possible, I am also interested in applying inter-procedural > analysis or static analysis to guide inlining. Unfortunately, I didn't find > any paper about this idea. Could you please provide me with some > suggestions about this? Is there any process related to these ideas in LLVM? > > As for my background relevant to this project: > * I am participating in porting V8 to RISC-V from July, 2020. > https://github.com/v8-riscv/v8 > * Recently, I began learning the inliner code in LLVM. And I also tried to > create my own pass to be familiar with LLVM infrastructure. > > Looking forward to more discussions, > > Best Wishes, > Liqiang Tao > > [1] An Optimization-Driven Incremental Inline Substitution Algorithm for > Just-In-Time Compilers > https://dl.acm.org/doi/10.5555/3314872.3314893 > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-- Jakub Kuderski -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210208/a5527974/attachment.html>