http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244
--- Comment #70 from Oleg Endo <olegendo at gcc dot gnu.org> --- Author: olegendo Date: Sat Oct 12 20:47:22 2013 New Revision: 203492 URL: http://gcc.gnu.org/viewcvs?rev=203492&root=gcc&view=rev Log: PR target/51244 * config/sh/sh_treg_combine.cc: New SH specific RTL pass. * config.gcc (SH extra_objs): Add sh_ifcvt.o. * config/sh/t-sh (sh_treg_combine.o): New entry. * config/sh/sh.c (sh_fixed_condition_code_regs): New function that implements the target hook TARGET_FIXED_CONDITION_CODE_REGS. (register_sh_passes): New function. Register sh_treg_combine pass. (sh_option_override): Invoke it. (sh_canonicalize_comparison): Handle op0_preserve_value. * sh.md (*cbranch_t"): Do not try to optimize missed test and branch opportunities. Canonicalize branch condition. (nott): Allow only if pseudos can be created for non-SH2A. PR target/51244 * gcc.dg/torture/p51244-21.c: New. * gcc.target/sh/pr51244-20.c: New. * gcc.target/sh/pr51244-20-sh2a.c: New. Added: trunk/gcc/config/sh/sh_treg_combine.cc trunk/gcc/testsuite/gcc.dg/torture/pr51244-21.c trunk/gcc/testsuite/gcc.target/sh/pr51244-20-sh2a.c trunk/gcc/testsuite/gcc.target/sh/pr51244-20.c Modified: trunk/gcc/ChangeLog trunk/gcc/config.gcc trunk/gcc/config/sh/sh.c trunk/gcc/config/sh/sh.md trunk/gcc/config/sh/t-sh trunk/gcc/testsuite/ChangeLog