Function inlining is a well known compiler optimization where a function call issubstituted with the body of the called function. Since function inlining in general increases the code size one might think that function inlining is a bad idea for embedded systems where a small code size is important.
In this project we will show that function inlining is a necessary optimization for any industrial strength C/C++ compiler . We show that both the generated code size and execution time of the application can benefit from function inlining. We study and compare the inlining heuristics of 3 different industrial strength compilers for the ARM processor architecture.
We also present a new inlining heuristic which makes inlining decisions based on several different properties. The study shows that the inlining heuristic proposed in this project is able to generate both smaller and faster code compared to the other inlining heuristics studied.
Source: Uppsala University
Author: Andersson, Pär