All authors of this presentation are Toolchain developers at SUSE. Martin Jambor is the author of interprocedural constant propagation and interprocedural "IPA-SRA" pass, Jan Hubička is GCC IPA maintainer and principal architect (among other things), and Martin Liška wrote the IPA-ICF pass and recently managed to make LTO the default optimization method in SUSE Tumbleweed distribution.
Interprodecural optimizations in GCC
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.