loop.c (check_dbra_loop): Return if more than one condition is present to control the loop.

* loop.c (check_dbra_loop) : Return if more than one condition is
        present to control the loop.

From-SVN: r35096
This commit is contained in:
Chandrakala Chavva 2000-07-17 18:10:17 +00:00 committed by Chandra Chavva
parent 2d3483dca0
commit 947851b2c3
2 changed files with 16 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
* loop.c (check_dbra_loop) : Return if more than one condition is
present to control the loop.
Mon Jul 17 08:26:35 2000 Clinton Popetz <cpopetz@cygnus.com>
* mips.c (mips_expand_prologue): Don't calculate the last

View file

@ -7795,6 +7795,17 @@ check_dbra_loop (loop, insn_count)
else
return 0;
{
/* If more than one condition is present to control the loop, then
do not procceed as this function does not know how to rewrite loop
tests with more than one condition. */
rtx jump1;
if ((jump1 = prev_nonnote_insn (jump)) != loop_continue)
if (GET_CODE (jump1) == JUMP_INSN))
return 0;
}
/* Check all of the bivs to see if the compare uses one of them.
Skip biv's set more than once because we can't guarantee that
it will be zero on the last iteration. Also skip if the biv is