[Bug target/51244] [SH] Inefficient conditional branch and code around T bit

olegendo at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Nov 22 15:07:00 GMT 2014


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244

--- Comment #77 from Oleg Endo <olegendo at gcc dot gnu.org> ---
Author: olegendo
Date: Sat Nov 22 15:06:34 2014
New Revision: 217968

URL: https://gcc.gnu.org/viewcvs?rev=217968&root=gcc&view=rev
Log:
gcc/
    PR target/63986
    PR target/51244
    * config/sh/sh.c (sh_is_logical_t_store_expr,
    sh_try_omit_signzero_extend): Use rtx_insn* for insn argument.
    (sh_split_movrt_negc_to_movt_xor): New function.
    (sh_find_set_of_reg): Move to ...
    * config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert
    to template function.
    (set_of_reg): Use rtx_insn* for insn member.
    (sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use
    rtx_insn* for insn argument.
    * config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor
    sequence using new sh_split_movrt_negc_to_movt_xor function.
    (movrt_xor): Allow also for SH2A.
    (*movt_movrt): Delete insns and splits.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/sh/sh-protos.h
    trunk/gcc/config/sh/sh.c
    trunk/gcc/config/sh/sh.md



More information about the Gcc-bugs mailing list