summaryrefslogtreecommitdiff
path: root/gcc/cse.c
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1997-11-17 06:51:20 +0000
committerJeff Law <law@gcc.gnu.org>1997-11-16 23:51:20 -0700
commit85c3ba60dd713e3efc0f7d65fe25e2ebf4771d86 (patch)
treeb2516bccecfbdb5b90356e29277bd7d5d207dde6 /gcc/cse.c
parent9155d500fb80973d5c88f52d4b89fb4fdbe7ede2 (diff)
downloadgcc-85c3ba60dd713e3efc0f7d65fe25e2ebf4771d86.tar.gz
cse.c (cse_insn): Don't look at JUMP_LABEL field of a conditionl return.
* cse.c (cse_insn): Don't look at JUMP_LABEL field of a conditionl return. (cse_end_of_basic_block): Similarly. From-SVN: r16534
Diffstat (limited to 'gcc/cse.c')
-rw-r--r--gcc/cse.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index 5ab24441deb..1f5504ae04b 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -7062,7 +7062,8 @@ cse_insn (insn, in_libcall_block)
NOTE_SOURCE_FILE (insn) = 0;
cse_jumps_altered = 1;
/* One less use of the label this insn used to jump to. */
- --LABEL_NUSES (JUMP_LABEL (insn));
+ if (JUMP_LABEL (insn) != 0)
+ --LABEL_NUSES (JUMP_LABEL (insn));
/* No more processing for this set. */
sets[i].rtl = 0;
}
@@ -8095,6 +8096,7 @@ cse_end_of_basic_block (insn, data, follow_jumps, after_loop, skip_blocks)
&& GET_CODE (p) == JUMP_INSN
&& GET_CODE (PATTERN (p)) == SET
&& GET_CODE (SET_SRC (PATTERN (p))) == IF_THEN_ELSE
+ && JUMP_LABEL (p) != 0
&& LABEL_NUSES (JUMP_LABEL (p)) == 1
&& NEXT_INSN (JUMP_LABEL (p)) != 0)
{