aboutsummaryrefslogtreecommitdiff
path: root/gcc/loop.c
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2001-04-19 19:44:43 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2001-04-19 19:44:43 +0000
commit13c502cdd58e3f48a479d82bc84a1a559009ff14 (patch)
tree506fdafc46c4b6ec4b2ce4087363eec750cfc54b /gcc/loop.c
parent3dcaf6e0d1737ac856d10d757e3c94bcaceff562 (diff)
downloadgcc-13c502cdd58e3f48a479d82bc84a1a559009ff14.zip
gcc-13c502cdd58e3f48a479d82bc84a1a559009ff14.tar.gz
gcc-13c502cdd58e3f48a479d82bc84a1a559009ff14.tar.bz2
rtl.texi (jump_insn): Expand on JUMP_LABEL documentation.
* rtl.texi (jump_insn): Expand on JUMP_LABEL documentation. * loop.c (load_mems): Handle a NULL JUMP_LABEL for a JUMP_INSN. From-SVN: r41424
Diffstat (limited to 'gcc/loop.c')
-rw-r--r--gcc/loop.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/loop.c b/gcc/loop.c
index 7748015..3e340af 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -8850,10 +8850,13 @@ load_mems (loop)
/* If this is a jump outside of the loop but not right
after the end of the loop, we would have to emit new fixup
sequences for each such label. */
- if (JUMP_LABEL (p) != end_label
- && (INSN_UID (JUMP_LABEL (p)) >= max_uid_for_loop
- || INSN_LUID (JUMP_LABEL (p)) < INSN_LUID (loop->start)
- || INSN_LUID (JUMP_LABEL (p)) > INSN_LUID (loop->end)))
+ if (/* If we can't tell where control might go when this
+ JUMP_INSN is executed, we must be conservative. */
+ !JUMP_LABEL (p)
+ || (JUMP_LABEL (p) != end_label
+ && (INSN_UID (JUMP_LABEL (p)) >= max_uid_for_loop
+ || INSN_LUID (JUMP_LABEL (p)) < INSN_LUID (loop->start)
+ || INSN_LUID (JUMP_LABEL (p)) > INSN_LUID (loop->end))))
return;
if (!any_condjump_p (p))