Techniques and Trade-Offs in Function Inlining Optimization - Gupta, Priya; Jha, Aditya; Gupta, Brinda; Sumpi, Kime; Sahoo, Sabyasachi; Venkata Chalapathi, Mukkoti Maruthi (EAI Endorsed Transactions on Scalable Information Systems, 2023)
Function inlining is a critical optimization technique used by compilers to improve program performance by replacing a function call with the body of the function and eliminating the overhead associated with function calls. However, the decision of when to inline functions and when not to is a nontrivial problem due to interactions with the rest of the compiler pipeline. Incorrect inlining decisions can cause runtime performance degradation, making this problem a crucial one to study. This paper reviews the different techniques used to optimize function inlining, including simple textual substitution, profile-guided inlining, interprocedural optimization, partial inlining, speculative inlining, and advanced techniques such as indirect call optimizations. Each technique has its strengths, weaknesses, and trade-offs, and ongoing research is exploring ways to overcome these challenges. Optimizing function inlining is a complex problem, and different techniques offer different tradeoffs. Further research to improve the performance of function inlining while minimizing any potential drawbacks could be pursued based on this paper.
Keywords: Function inlining; Compliler optimization; function call; program performance; compiler pipeline