copy_bb_p uses uncond_jump_length in order to gauge
when code increase will be negative or neglegible
(at -Os) or acceptable (at -O2); however,
uncond_jump_length has the wrong value.
According to the comment in reorder_basic_blocks, it
expects to get a minimal length for an unconditional
jump when it calls get_uncond_jump_length in order
to set uncond_jump_length.  However,it gets a maximal
length instead.
get_uncond_jump_length returns 5 for i386, and 24 for SH.

-- 
           Summary: basic block reordering excessively increases code size;
                    get_uncond_jump_length pessimistic
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: amylaar at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23898

Reply via email to