diff options
author | J"orn Rennecke <amylaar@cygnus.co.uk> | 2000-02-28 11:38:10 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2000-02-28 11:38:10 +0000 |
commit | 035a6890e978b3ba9e23b8c202c2dbf997f2b673 (patch) | |
tree | e263a0246c94bdf9382ea0a6c810f8cb713e8020 /gcc/loop.c | |
parent | 18c038b9ca6f4e60c625636506cfe5a3290475a9 (diff) | |
download | gcc-035a6890e978b3ba9e23b8c202c2dbf997f2b673.zip gcc-035a6890e978b3ba9e23b8c202c2dbf997f2b673.tar.gz gcc-035a6890e978b3ba9e23b8c202c2dbf997f2b673.tar.bz2 |
Fix for SH gcc.c-torture/compile/991229-3.c failure:
* loop.c (reg_in_basic_block_p): Don't abort when falling through
to the end of the function.
From-SVN: r32229
Diffstat (limited to 'gcc/loop.c')
-rw-r--r-- | gcc/loop.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -1284,8 +1284,12 @@ reg_in_basic_block_p (insn, reg) } } - /* The "last use" doesn't follow the "first use"?? */ - abort (); + /* The "last use" that was recorded can't be found after the first + use. This can happen when the last use was deleted while + processing an inner loop, this inner loop was then completely + unrolled, and the outer loop is always exited after the inner loop, + so that everything after the first use becomes a single basic block. */ + return 1; } /* Compute the benefit of eliminating the insns in the block whose |