re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
gcc/ PR target/51244 * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and movrt patterns. Match them before anything else in the SET case. From-SVN: r240533
This commit is contained in:
parent
f0d355dc5c
commit
4e7e89e8c9
|
@ -1,3 +1,9 @@
|
||||||
|
2016-09-27 Oleg Endo <olegendo@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR target/51244
|
||||||
|
* config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
|
||||||
|
movrt patterns. Match them before anything else in the SET case.
|
||||||
|
|
||||||
2016-09-27 Martin Liska <mliska@suse.cz>
|
2016-09-27 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
PR gcov-profile/7970
|
PR gcov-profile/7970
|
||||||
|
|
|
@ -3199,6 +3199,12 @@ sh_rtx_costs (rtx x, machine_mode mode ATTRIBUTE_UNUSED, int outer_code,
|
||||||
vector-move, so we have to provide the correct cost in the number
|
vector-move, so we have to provide the correct cost in the number
|
||||||
of move insns to load/store the reg of the mode in question. */
|
of move insns to load/store the reg of the mode in question. */
|
||||||
case SET:
|
case SET:
|
||||||
|
if (sh_movt_set_dest (x) != NULL || sh_movrt_set_dest (x) != NULL)
|
||||||
|
{
|
||||||
|
*total = COSTS_N_INSNS (1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (register_operand (SET_DEST (x), VOIDmode)
|
if (register_operand (SET_DEST (x), VOIDmode)
|
||||||
&& (register_operand (SET_SRC (x), VOIDmode)
|
&& (register_operand (SET_SRC (x), VOIDmode)
|
||||||
|| satisfies_constraint_Z (SET_SRC (x))))
|
|| satisfies_constraint_Z (SET_SRC (x))))
|
||||||
|
@ -3208,10 +3214,6 @@ sh_rtx_costs (rtx x, machine_mode mode ATTRIBUTE_UNUSED, int outer_code,
|
||||||
/ mov_insn_size (mode, TARGET_SH2A));
|
/ mov_insn_size (mode, TARGET_SH2A));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sh_movt_set_dest (x) != NULL || sh_movrt_set_dest (x) != NULL)
|
|
||||||
return COSTS_N_INSNS (1);
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* The cost of a mem access is mainly the cost of the address mode. */
|
/* The cost of a mem access is mainly the cost of the address mode. */
|
||||||
|
|
Loading…
Reference in New Issue