aboutsummaryrefslogtreecommitdiff
path: root/gcc/jump.c
diff options
context:
space:
mode:
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>2016-08-28 00:03:59 +0000
committerTrevor Saunders <tbsaunde@gcc.gnu.org>2016-08-28 00:03:59 +0000
commit6f7eba349b7f2b140f163b772ba94b383d02d64e (patch)
tree6e015ffd2f6f050040be30de304e3e8a115eba43 /gcc/jump.c
parent9cad8a673f30b657218eb73565b992ba203a2581 (diff)
downloadgcc-6f7eba349b7f2b140f163b772ba94b383d02d64e.zip
gcc-6f7eba349b7f2b140f163b772ba94b383d02d64e.tar.gz
gcc-6f7eba349b7f2b140f163b772ba94b383d02d64e.tar.bz2
make forced labels a vec
gcc/ChangeLog: 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * cfgbuild.c (make_edges): Adjust. * cfgrtl.c (can_delete_label_p): Likewise. * dwarf2cfi.c (create_trace_edges): Likewise. * except.c (sjlj_emit_dispatch_table): Likewise. * function.h (struct expr_status): make x_forced_labels a vector. * jump.c (rebuild_jump_labels_1): Adjust. * reload1.c (set_initial_label_offsets): Likewise. * stmt.c (force_label_rtx): Likewise. (expand_label): Likewise. From-SVN: r239800
Diffstat (limited to 'gcc/jump.c')
-rw-r--r--gcc/jump.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/jump.c b/gcc/jump.c
index 5b433af..22f8a71 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -68,8 +68,6 @@ static int invert_exp_1 (rtx, rtx);
static void
rebuild_jump_labels_1 (rtx_insn *f, bool count_forced)
{
- rtx_insn_list *insn;
-
timevar_push (TV_REBUILD_JUMP);
init_label_info (f);
mark_all_labels (f);
@@ -79,9 +77,13 @@ rebuild_jump_labels_1 (rtx_insn *f, bool count_forced)
count doesn't drop to zero. */
if (count_forced)
- for (insn = forced_labels; insn; insn = insn->next ())
- if (LABEL_P (insn->insn ()))
- LABEL_NUSES (insn->insn ())++;
+ {
+ rtx_insn *insn;
+ unsigned int i;
+ FOR_EACH_VEC_SAFE_ELT (forced_labels, i, insn)
+ if (LABEL_P (insn))
+ LABEL_NUSES (insn)++;
+ }
timevar_pop (TV_REBUILD_JUMP);
}