diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2001-01-07 02:26:51 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2001-01-07 02:26:51 +0000 |
commit | f759eb8bf0d98603f2e6930126e517ed995a64a8 (patch) | |
tree | 17de3bb34420626f8eab111aee34a18e3a1f275f /gcc/rtlanal.c | |
parent | 0e2e89fd2e117555f71be7a28e41f5f7663c3395 (diff) | |
download | gcc-f759eb8bf0d98603f2e6930126e517ed995a64a8.zip gcc-f759eb8bf0d98603f2e6930126e517ed995a64a8.tar.gz gcc-f759eb8bf0d98603f2e6930126e517ed995a64a8.tar.bz2 |
reload.c (subst_reloads): Take INSN argument.
* reload.c (subst_reloads): Take INSN argument. When
replacing a LABEL_REF in a JUMP_INSN, add a REG_LABEL note.
* reload.h (subst_reloads): Adjust prototype.
* reload1.c (reload_as_needed): Pass INSN to subst_reloads.
* jump.c (mark_all_labels): Canonicalize any REG_LABEL notes
present in JUMP_INSNs and copy them to JUMP_LABEL.
* flow.c (find_label_refs, find_basic_blocks_1): Skip
JUMP_INSNs and insns with REG_LABELs that are followed by
JUMP_INSNs with the same REG_LABEL.
* sched-rgn.c (is_cfg_nonregular): Likewise.
* rtlanal.c (computed_jump_p): Make it false if a REG_LABEL
note is available.
* unroll.c (unroll_loop): Look for REG_LABEL notes in
JUMP_INSNs too.
* rtl.texi (REG_LABEL): Document usage in JUMP_INSNs.
From-SVN: r38755
Diffstat (limited to 'gcc/rtlanal.c')
-rw-r--r-- | gcc/rtlanal.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 67c5319..b0fbcf3 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -1,6 +1,6 @@ /* Analyze RTL for C-Compiler Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000 Free Software Foundation, Inc. + 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GNU CC. @@ -2285,7 +2285,9 @@ computed_jump_p (insn) { rtx pat = PATTERN (insn); - if (GET_CODE (pat) == PARALLEL) + if (find_reg_note (insn, REG_LABEL, NULL_RTX)) + return 0; + else if (GET_CODE (pat) == PARALLEL) { int len = XVECLEN (pat, 0); int has_use_labelref = 0; |