re PR target/52898 (SH Target: Inefficient DImode comparisons)
authorOleg Endo <olegendo@gcc.gnu.org>
Mon, 2 May 2016 05:25:46 +0000 (05:25 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Mon, 2 May 2016 05:25:46 +0000 (05:25 +0000)
commit40d848c7145f2dda3b8871362b1cd640adf158fe
tree478b791eadd3cc9b945434b9b5cebe57697c6e15
parent126fa2bb01d775d8023d233c7a587fcfa6067c4f
re PR target/52898 (SH Target: Inefficient DImode comparisons)

gcc/
PR target/52898
* config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
TARGET_CMPEQDI_T.
(prepare_cbranch_operands): Don't use scratch register.  Assume that
function is used when pseudos can be created.
(expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
* config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
(cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
define_expand.  Allow it only when pseudos can be created.
* config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.

From-SVN: r235698
gcc/ChangeLog
gcc/config/sh/sh.c
gcc/config/sh/sh.md
gcc/config/sh/sh.opt