This is an old revision of the document!
Link Time Optimization (LTO) gives GCC the capability of dumping its internal representation (GIMPLE) to disk, so that all the different compilation units that make up a single executable can be optimized as a single module. This expands the scope of inter-procedural optimizations to encompass the whole program (or, rather, everything that is visible at link time). https://gcc.gnu.org/wiki/LinkTimeOptimization
All you need is add in make.conf append to your CFLAGS -flto.
$ cat /etc/portage/env/no-lto.conf
CFLAGS="${CFLAGS} -fno-lto -fno-use-linker-plugin"
CXXFLAGS="${CXXFLAGS} -fno-lto -fno-use-linker-plugin"
LDFLAGS="${LDFLAGS} -fno-lto -fno-use-linker-plugin"
This is list of packages, which doesn't build with CFLAGS=“-flto”, please update if you encounter some broken.
$ cat /etc/portage/package.env/no-lto
media-libs/mesa no-lto-O2.conf
x11-base/xorg-server no-lto.conf
sys-apps/grep no-lto.conf
sys-fs/e2fsprogs no-lto.conf
sys-devel/gdb no-lto.conf
net-misc/wget no-lto.conf
dev-libs/cyrus-sasl no-lto.conf
mail-mta/postfix no-lto.conf
app-office/akonadi-server no-lto.conf
sys-apps/util-linux no-lto.conf
sys-fs/udisks no-lto.conf
x11-libs/pango no-lto.conf
gnome-base/libglade no-lto.conf
media-libs/gst-plugins-base no-lto.conf
sys-apps/systemd no-lto.conf
sys-apps/dbus no-lto.conf
media-sound/pulseaudio no-lto.conf
dev-qt/qtcore no-lto.conf
dev-qt/qtgui no-lto.conf
media-video/libav no-lto.conf
media-libs/libpostproc no-lto.conf
dev-db/mariadb no-lto.conf #maybe
net-irc/telepathy-idle no-lto.conf
net-misc/openssh no-lto.conf
app-admin/sudo no-lto.conf
dev-libs/libtasn1 no-lto.conf
net-libs/gnutls no-lto.conf
net-libs/glib-networking no-lto.conf
dev-libs/gobject-introspection no-lto.conf
www-servers/apache no-lto.conf
net-dns/libidn no-lto.conf
dev-lang/vala no-lto.conf
net-im/telepathy-mission-control no-lto.conf
x11-libs/gdk-pixbuf no-lto.conf
net-voip/telepathy-gabble no-lto.conf
dev-vcs/git no-lto.conf
sys-power/upower no-lto.conf