Hi DJ, The patch below fixes a small problem with the RL78 backend. When optimizing for size it is better to use a slow multiply instruction than a faster, but larger, shift sequence. So the patch tweaks the rtx costs for MULT insns when speed is not a priority.
Tested with no regressions on an rl78-elf toolchain. OK to apply ? Cheers Nick gcc/ChangeLog 2015-08-05 Nick Clifton <ni...@redhat.com> * config/rl78/rl78.c (rl78_rtx_costs): Treat MULT insns as cheap if optimizing for size. Index: gcc/config/rl78/rl78.c =================================================================== RCS file: /cvs/cvsfiles/gnupro/gcc/config/rl78/rl78.c,v retrieving revision 1.12.6.15 diff -u -3 -p -r1.12.6.15 rl78.c --- gcc/config/rl78/rl78.c 29 Jul 2015 12:24:04 -0000 1.12.6.15 +++ gcc/config/rl78/rl78.c 30 Jul 2015 15:20:10 -0000 @@ -4161,7 +4161,9 @@ static bool rl78_rtx_costs (rtx x, switch (code) { case MULT: - if (RL78_MUL_G14) + if (! speed) + * total = COSTS_N_INSNS (5); + else if (RL78_MUL_G14) *total = COSTS_N_INSNS (14); else if (RL78_MUL_G13) *total = COSTS_N_INSNS (29);