diff options
author | Oleg Endo <olegendo@gcc.gnu.org> | 2013-10-12 20:47:22 +0000 |
---|---|---|
committer | Oleg Endo <olegendo@gcc.gnu.org> | 2013-10-12 20:47:22 +0000 |
commit | 5d30dc5b6d86563a0a9ffb28429474b0f6c56544 (patch) | |
tree | d10115063632d11cde88f211517d35808a4261b8 /gcc/config.gcc | |
parent | 585a0b99166d96d04c6b65aca3ff797d7316e0ac (diff) | |
download | gcc-5d30dc5b6d86563a0a9ffb28429474b0f6c56544.zip gcc-5d30dc5b6d86563a0a9ffb28429474b0f6c56544.tar.gz gcc-5d30dc5b6d86563a0a9ffb28429474b0f6c56544.tar.bz2 |
re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
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.
From-SVN: r203492
Diffstat (limited to 'gcc/config.gcc')
-rw-r--r-- | gcc/config.gcc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/config.gcc b/gcc/config.gcc index c85d088..c59e2ca 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -465,6 +465,7 @@ sh[123456789lbe]*-*-* | sh-*-*) cpu_type=sh need_64bit_hwint=yes extra_options="${extra_options} fused-madd.opt" + extra_objs="${extra_objs} sh_treg_combine.o" ;; v850*-*-*) cpu_type=v850 |