------- Comment #38 from jakub at gcc dot gnu dot org 2009-05-15 12:11 ------- To extend #c31, I've also built the same tree with another patch which made sure ix86_avoid_jump_mispredicts is never called (change "&& optimize" into "&& optimize > 4" in ix86_reorg). cc1plus sizes were then 0x88d6d8 bytes for 64-bit cc1plus and 0x8c980c bytes for 32-bit cc1plus. That is 2.42% smaller than vanilla resp. 2.06%.
I've also changed my testing script, so that it (hopefully, point me to errors) follows the AMD rules more closely (namely that the last byte in the branch insn counts, not the first one), will attach. With that script, I got following number of violations for 64-bit cc1plus (vanilla, +1patch, +2patches, +3patches, +4patches): 6, 7, 6, 51, 138 and for 32-bit cc1plus: 1, 2, 3, 34, 159. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39942