Compiling xterm-202 on i686-pc-linux-gnu shows that 4.1 generates bigger code than 4.0. This happens for all combinations of {-march=i386 and -march=i686} and {-O2 and -Os}.
size -f 4.*/xterm text data bss dec hex filename 175215 21724 6684 203623 31b67 4.0-O2-i386/xterm 181835 14052 6684 202571 3174b 4.1-O2-i386/xterm 189064 21728 6684 217476 35184 4.0-O2-i686/xterm 195680 14056 6684 216420 34d64 4.1-O2-i686/xterm 148727 21724 6684 177135 2b3ef 4.0-Os-i386/xterm 156443 14052 6684 177179 2b41b 4.1-Os-i386/xterm 149011 21724 6684 177419 2b50b 4.0-Os-i686/xterm 156779 14052 6684 177515 2b56b 4.1-Os-i686/xterm The same is true for the individual object files, not only for the final binary. The preprocessed sources can be obtained from PR22574 If someone wants to investigate the cause, maybe it would be a good idea to look at one of the small files like xstrings.i (500 bytes text size). -- Summary: code size regression from 4.0 on x86 Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dann at godzilla dot ics dot uci dot edu CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23153