https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85459
--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #1) > I think this is a result of many changes. > E.g. r249885 bumps .s size from 3709 to 4599 bytes, r254724 from 4599 to > 5768, r255510 from 5772 to 7713. You are compiling with -O3, not -Os, so > the size is not what counts though, but the code speed, right? -Os gives something much larger (16633). I agree 100% that what matters at -O3 is code speed, not size, and I am only using the size as a crude indicator before looking into the code more closely. And what I saw were many extra moves and some missed __builtin_constant_p opportunities, both of which obviously have a negative impact on performance. If the only size increase came from outlining the exception code, that would be fine. But compiling with -fno-exceptions (after removing enough exception-related unnecessary stuff from the file so it compiles) still shows an increase from 2639 to 4268.