Commit 616fde53 by Michael Hayes Committed by Michael Hayes

loop.c (loop_giv_reduce_benefit): Copy mode size into int variable.

	* loop.c (loop_giv_reduce_benefit): Copy mode size into
	int variable.
	(check_ext_dependant_givs): Initialise u_start_val and
	u_end_val.
	(load_mems): Make last_max_reg unsigned.
	(try_swap_copy_prop): Use INSN_P and initialise set.

From-SVN: r39284
parent 5bb1db00
2001-01-27 Michael Hayes <mhayes@redhat.com>
* loop.c (loop_giv_reduce_benefit): Copy mode size into
int variable.
(check_ext_dependant_givs): Initialise u_start_val and
u_end_val.
(load_mems): Make last_max_reg unsigned.
(try_swap_copy_prop): Use INSN_P and initialise set.
Fri Jan 26 23:22:58 2001 Denis Chertykov <denisc@overta.ru> Fri Jan 26 23:22:58 2001 Denis Chertykov <denisc@overta.ru>
* README.AVR : Removed. * README.AVR : Removed.
......
...@@ -4135,17 +4135,19 @@ loop_giv_reduce_benefit (loop, bl, v, test_reg) ...@@ -4135,17 +4135,19 @@ loop_giv_reduce_benefit (loop, bl, v, test_reg)
&& benefit > 0 && benefit > 0
&& GET_CODE (v->mult_val) == CONST_INT) && GET_CODE (v->mult_val) == CONST_INT)
{ {
int size = GET_MODE_SIZE (GET_MODE (v->mem));
if (HAVE_POST_INCREMENT if (HAVE_POST_INCREMENT
&& INTVAL (v->mult_val) == GET_MODE_SIZE (GET_MODE (v->mem))) && INTVAL (v->mult_val) == size)
benefit += add_cost * bl->biv_count; benefit += add_cost * bl->biv_count;
else if (HAVE_PRE_INCREMENT else if (HAVE_PRE_INCREMENT
&& INTVAL (v->mult_val) == GET_MODE_SIZE (GET_MODE (v->mem))) && INTVAL (v->mult_val) == size)
benefit += add_cost * bl->biv_count; benefit += add_cost * bl->biv_count;
else if (HAVE_POST_DECREMENT else if (HAVE_POST_DECREMENT
&& -INTVAL (v->mult_val) == GET_MODE_SIZE (GET_MODE (v->mem))) && -INTVAL (v->mult_val) == size)
benefit += add_cost * bl->biv_count; benefit += add_cost * bl->biv_count;
else if (HAVE_PRE_DECREMENT else if (HAVE_PRE_DECREMENT
&& -INTVAL (v->mult_val) == GET_MODE_SIZE (GET_MODE (v->mem))) && -INTVAL (v->mult_val) == size)
benefit += add_cost * bl->biv_count; benefit += add_cost * bl->biv_count;
} }
#endif #endif
...@@ -6482,7 +6484,8 @@ check_ext_dependant_givs (bl, loop_info) ...@@ -6482,7 +6484,8 @@ check_ext_dependant_givs (bl, loop_info)
int ze_ok = 0, se_ok = 0, info_ok = 0; int ze_ok = 0, se_ok = 0, info_ok = 0;
enum machine_mode biv_mode = GET_MODE (bl->biv->src_reg); enum machine_mode biv_mode = GET_MODE (bl->biv->src_reg);
HOST_WIDE_INT start_val; HOST_WIDE_INT start_val;
unsigned HOST_WIDE_INT u_end_val, u_start_val; unsigned HOST_WIDE_INT u_end_val = 0;
unsigned HOST_WIDE_INT u_start_val = 0;
rtx incr = pc_rtx; rtx incr = pc_rtx;
struct induction *v; struct induction *v;
...@@ -8815,7 +8818,7 @@ load_mems (loop) ...@@ -8815,7 +8818,7 @@ load_mems (loop)
rtx end_label; rtx end_label;
/* Nonzero if the next instruction may never be executed. */ /* Nonzero if the next instruction may never be executed. */
int next_maybe_never = 0; int next_maybe_never = 0;
int last_max_reg = max_reg_num (); unsigned int last_max_reg = max_reg_num ();
if (loop_info->mems_idx == 0) if (loop_info->mems_idx == 0)
return; return;
...@@ -9247,7 +9250,7 @@ try_swap_copy_prop (loop, replacement, regno) ...@@ -9247,7 +9250,7 @@ try_swap_copy_prop (loop, replacement, regno)
unsigned int regno; unsigned int regno;
{ {
rtx insn; rtx insn;
rtx set; rtx set = NULL_RTX;
unsigned int new_regno; unsigned int new_regno;
new_regno = REGNO (replacement); new_regno = REGNO (replacement);
...@@ -9257,7 +9260,7 @@ try_swap_copy_prop (loop, replacement, regno) ...@@ -9257,7 +9260,7 @@ try_swap_copy_prop (loop, replacement, regno)
insn = next_insn_in_loop (loop, insn)) insn = next_insn_in_loop (loop, insn))
{ {
/* Search for the insn that copies REGNO to NEW_REGNO? */ /* Search for the insn that copies REGNO to NEW_REGNO? */
if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' if (INSN_P (insn)
&& (set = single_set (insn)) && (set = single_set (insn))
&& GET_CODE (SET_DEST (set)) == REG && GET_CODE (SET_DEST (set)) == REG
&& REGNO (SET_DEST (set)) == new_regno && REGNO (SET_DEST (set)) == new_regno
...@@ -9266,7 +9269,7 @@ try_swap_copy_prop (loop, replacement, regno) ...@@ -9266,7 +9269,7 @@ try_swap_copy_prop (loop, replacement, regno)
break; break;
} }
if (insn != NULL_RTX) if (set)
{ {
rtx prev_insn; rtx prev_insn;
rtx prev_set; rtx prev_set;
...@@ -9277,7 +9280,7 @@ try_swap_copy_prop (loop, replacement, regno) ...@@ -9277,7 +9280,7 @@ try_swap_copy_prop (loop, replacement, regno)
prev_insn = PREV_INSN (insn); prev_insn = PREV_INSN (insn);
if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' if (INSN_P (insn)
&& (prev_set = single_set (prev_insn)) && (prev_set = single_set (prev_insn))
&& GET_CODE (SET_DEST (prev_set)) == REG && GET_CODE (SET_DEST (prev_set)) == REG
&& REGNO (SET_DEST (prev_set)) == regno) && REGNO (SET_DEST (prev_set)) == regno)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment