Hi,

This series of patches solves few issues we found with Thumb-2 conditional insns. These fixes include:

1) Split if_then_else into cond_execs to generate only required minimum of IT-blocks; 2) Grouping conditional insns of same INSN_PRIORITY to avoid excessive splitting of IT-blocks; 3) In if-conversion, set the maximum number of converted insns in a branch to 4, to match the limit for IT-block; 4) Don't perform if-conversion, if one of branches has significantly greater probability then the other; 5) Swap passes peephole2 and if_after_reload in order to generate more conditional insns (this one is actually more like a problem report, than a fix).

The combined effect on code size from patches 1-4 on SPEC2K INT with -O2 is as follows:

Test     bytes
name     saved
--------------
gzip        4
vpr         0
gcc       100
mcf         4
crafty     16
parser      0
eon         8
perlbmk     8
gap        44
vortex      8
bzip2      16
twolf      24
--------------
Total:    232

Do you think some of this patches are OK for trunk?

--
Best regards,
  Dmitry

Reply via email to