diff options
author | Stan Cox <scox@cygnus.com> | 1999-07-23 22:07:21 +0000 |
---|---|---|
committer | Stan Cox <scox@cygnus.com> | 1999-07-23 22:07:21 +0000 |
commit | cfac234729e03d1be370b509edcd83bd622d800e (patch) | |
tree | 789172f4668d286bf2cb36d266b2cbbec246cef9 | |
parent | 87415da8d5a8cb305414c8ff55b7e22c13d6b348 (diff) |
* loop.c (check_decr_loop): Put bl->initial_value in canonical form.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/new_ia32_branch@28229 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog.P2 | 4 | ||||
-rw-r--r-- | gcc/loop.c | 14 |
2 files changed, 14 insertions, 4 deletions
diff --git a/gcc/ChangeLog.P2 b/gcc/ChangeLog.P2 index 08753998329..50262073253 100644 --- a/gcc/ChangeLog.P2 +++ b/gcc/ChangeLog.P2 @@ -1,3 +1,7 @@ +1999-07-19 Stan Cox <scox@cygnus.com> + + * loop.c (check_decr_loop): Put bl->initial_value in canonical form. + 1999-07-19 Jan Hubicka <hubicka@freesoft.cz> * i386.c (k6_cost): Tune parameters diff --git a/gcc/loop.c b/gcc/loop.c index 9cad581e737..4f1846e6d8d 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -8910,10 +8910,16 @@ check_decr_loop (loop_end, insn_count, loop_start, loop_info) } else { - bl->initial_value = - gen_rtx_MINUS (GET_MODE (bl->biv->dest_reg), - bl->initial_value, - loop_info->final_value); + int dummy; + rtx ext_val_dummy; + + bl->initial_value = simplify_giv_expr + (gen_rtx_MINUS (GET_MODE (bl->biv->dest_reg), + bl->initial_value, + loop_info->final_value), + &ext_val_dummy, &dummy); + if (GET_CODE (bl->initial_value) == USE) + bl->initial_value = XEXP (bl->initial_value, 0); } insn = gen_move_insn (bl->biv->dest_reg, bl->initial_value); |