This paper describes the state-of-the-art in compiler technology:profile-driven optimizations. The new techniques deliver superior runtime performance compared with conventional global optimizations. Many aspects of embedded system designs make profile-driven optimization particularly fruitful.
Traditionally, profiling has meant gathering a runtime profile by using a compiler switch, and then using the insights gained from the profile to hand-tune the application. Exploiting a runtime profile is now much simpler with compilers that not only support gathering the profile, but also can make use of the profile to guide global optimizations. Taking the runtime behavior of the program into account consistently increases the effectiveness of traditional global optimizations.
In this paper we explain what is meant by profile-driven compiler optimization. We describe some embedded system characteristics that make them particularly amenable to optimization using the new strategies. A specific implementation for the i960 processor family is used in the examples. The CTOOLS960 compiler system consists of a high-performance profiling compiler, profiling tools, an assembler, linker, debugger,and support tools.
ESC_1992_Vol1_Page189_Deodhar – Optimizing Embedded RISC Designs with Software.pdf