diff options
author | Chandrakala Chavva <cchavva@cygnus.com> | 2000-07-17 18:10:17 +0000 |
---|---|---|
committer | Chandra Chavva <cchavva@gcc.gnu.org> | 2000-07-17 14:10:17 -0400 |
commit | 947851b2c3d2b636bf396f27523dd3e644c4cbff (patch) | |
tree | 61fbd0c195cba2c82230e53e2e655ce8d3a7f436 /gcc | |
parent | 2d3483dca01e2813f98de48f673ac9c967add7a2 (diff) | |
download | gcc-947851b2c3d2b636bf396f27523dd3e644c4cbff.zip gcc-947851b2c3d2b636bf396f27523dd3e644c4cbff.tar.gz gcc-947851b2c3d2b636bf396f27523dd3e644c4cbff.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/loop.c | 11 |
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7509ddf..e407547 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 @@ -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 |