http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375
--- Comment #205 from Jan Hubicka <hubicka at ucw dot cz> --- I was looking into this recently, too. Curiously enough, for me clang+LTO was winning but comparing the symbols it seemed that the confiugre scripts picked bit more features at GCC side. I looked briefly on the differences and we can optimize out more vtables which I have patch for pending for next stage1 and optimize out write only global vars. Still the differences may be worth further investigation - clang seems to produce noticeably fewer external relocations, too. This seems like a ABI bug at clang side though. What I use for my firefox builds is --param inline-unit-growth=5. Our -O3 seems bit of overkill for applicatin of fize of Firefox... Honza