https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64343
--- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> --- This is intended change. Compiling with -O0 -flto and linking with -O3 will not really give you -O3 optimized code in earlier compilers either; you will not get any of early optimizations and inlining will not use any of the more advanced optimizations. THe purpose of OPTIMIZE/TARGET_OPTION node streaming is to make LTO closer to non-LTO copmilation by making the compile time flags to matter. This allows you to i.e. combine -ffast-math/-fno-fast-math units well or build part of program with different target options.