{"title":"函数内嵌优化的技术与权衡","authors":"Priya Gupta, Aditya Jha, Brinda Gupta, Kime Sumpi, Sabyasachi Sahoo, Mukkoti Maruthi Venkata Chalapathi","doi":"10.4108/eetsis.4453","DOIUrl":null,"url":null,"abstract":"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.","PeriodicalId":502678,"journal":{"name":"ICST Transactions on Scalable Information Systems","volume":"189 ","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2023-11-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Techniques and Trade-Offs in Function Inlining Optimization\",\"authors\":\"Priya Gupta, Aditya Jha, Brinda Gupta, Kime Sumpi, Sabyasachi Sahoo, Mukkoti Maruthi Venkata Chalapathi\",\"doi\":\"10.4108/eetsis.4453\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"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.\",\"PeriodicalId\":502678,\"journal\":{\"name\":\"ICST Transactions on Scalable Information Systems\",\"volume\":\"189 \",\"pages\":\"\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2023-11-22\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"ICST Transactions on Scalable Information Systems\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.4108/eetsis.4453\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"ICST Transactions on Scalable Information Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.4108/eetsis.4453","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Techniques and Trade-Offs in Function Inlining Optimization
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.