Current versions of GCC feature a wide and growing set of inter-procedural optimizations (those that work on more than one function at a time) that include inlining, propagation of many properties of functions and their arguments, removal of unused (parts of) parameters, pure/const detection and even unification of functions that are recognized to have exactly the same semantics. This talk will explain what the main goals of these transformations are, outline how most of them work and show how powerful they get when used as part of Link Time Optimizations (LTO) and with profile feedback.
None
Speakers: Martin Jambor