This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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

--- Comment #56 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-10-15 22:08:14 UTC ---
Author: olegendo
Date: Mon Oct 15 22:08:07 2012
New Revision: 192481

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=192481
Log:
    PR target/51244
    * config/sh/sh-protos.h (set_of_reg): New struct.
    (sh_find_set_of_reg, sh_is_logical_t_store_expr,
    sh_try_omit_signzero_extend):  Declare...
    * config/sh/sh.c (sh_find_set_of_reg, sh_is_logical_t_store_expr,
    sh_try_omit_signzero_extend): ...these new functions.
    * config/sh/sh.md (*logical_op_t): New insn_and_split.
    (*zero_extend<mode>si2_compact): Use sh_try_omit_signzero_extend
    in splitter.
    (*extend<mode>si2_compact_reg): Convert to insn_and_split.
    Use sh_try_omit_signzero_extend in splitter.
    (*mov<mode>_reg_reg): Disallow t_reg_operand as operand 1.
    (*cbranch_t): Rewrite combine part in splitter using new
    sh_find_set_of_reg function.

    PR target/51244
    * gcc.target/sh/pr51244-17.c: New.


Added:
    trunk/gcc/testsuite/gcc.target/sh/pr51244-17.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/sh/sh-protos.h
    trunk/gcc/config/sh/sh.c
    trunk/gcc/config/sh/sh.md
    trunk/gcc/testsuite/ChangeLog


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]