diff options
author | Mark Mitchell <mark@codesourcery.com> | 2001-04-19 19:44:43 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2001-04-19 19:44:43 +0000 |
commit | 13c502cdd58e3f48a479d82bc84a1a559009ff14 (patch) | |
tree | 506fdafc46c4b6ec4b2ce4087363eec750cfc54b /gcc/loop.c | |
parent | 3dcaf6e0d1737ac856d10d757e3c94bcaceff562 (diff) | |
download | gcc-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.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -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)) |