diff options
author | dmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-08-28 19:05:44 +0000 |
---|---|---|
committer | dmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-08-28 19:05:44 +0000 |
commit | 231c0441dd3c8a970ba03a5418f76303dfed4db2 (patch) | |
tree | d3d01491f8685328e98111d3666549b0c3f27a74 | |
parent | a4de1c238b07b6b64d0851c8eb4b601be6cb6bec (diff) | |
download | gcc-231c0441dd3c8a970ba03a5418f76303dfed4db2.tar.gz |
Convert forced_labels from an EXPR_LIST to an INSN_LIST
gcc/
2014-08-28 David Malcolm <dmalcolm@redhat.com>
* function.h (struct expr_status): Convert field "x_forced_labels"
from rtx_expr_list * to rtx_insn_list *.
* cfgbuild.c (make_edges): Convert local "x" from an
rtx_expr_list * to an rtx_insn_list *, replacing use of
"element" method with "insn" method.
* dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
* except.c (sjlj_emit_dispatch_table): Replace use of
gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
forced_labels.
* jump.c (rebuild_jump_labels_1): Convert local "insn" from an
rtx_expr_list * to an rtx_insn_list *, replacing use of
"element" method with "insn" method.
* reload1.c (set_initial_label_offsets): Likewise for local "x".
* stmt.c (label_rtx): Strengthen local "ref" from rtx to
rtx_insn *, adding a checked cast. Replace use of
gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
forced_labels.
(expand_label): Likewise for local "label_r".
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214688 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 22 | ||||
-rw-r--r-- | gcc/cfgbuild.c | 4 | ||||
-rw-r--r-- | gcc/dwarf2cfi.c | 4 | ||||
-rw-r--r-- | gcc/except.c | 2 | ||||
-rw-r--r-- | gcc/function.h | 2 | ||||
-rw-r--r-- | gcc/jump.c | 6 | ||||
-rw-r--r-- | gcc/reload1.c | 6 | ||||
-rw-r--r-- | gcc/stmt.c | 8 |
8 files changed, 38 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9081532fdf9..eebe50127f2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,27 @@ 2014-08-28 David Malcolm <dmalcolm@redhat.com> + * function.h (struct expr_status): Convert field "x_forced_labels" + from rtx_expr_list * to rtx_insn_list *. + + * cfgbuild.c (make_edges): Convert local "x" from an + rtx_expr_list * to an rtx_insn_list *, replacing use of + "element" method with "insn" method. + * dwarf2cfi.c (create_trace_edges): Likewise for local "lab". + * except.c (sjlj_emit_dispatch_table): Replace use of + gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to + forced_labels. + * jump.c (rebuild_jump_labels_1): Convert local "insn" from an + rtx_expr_list * to an rtx_insn_list *, replacing use of + "element" method with "insn" method. + * reload1.c (set_initial_label_offsets): Likewise for local "x". + * stmt.c (label_rtx): Strengthen local "ref" from rtx to + rtx_insn *, adding a checked cast. Replace use of + gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to + forced_labels. + (expand_label): Likewise for local "label_r". + +2014-08-28 David Malcolm <dmalcolm@redhat.com> + * function.h (struct rtl_data): Convert field "x_nonlocal_goto_handler_labels" from rtx_expr_list * to rtx_insn_list *. diff --git a/gcc/cfgbuild.c b/gcc/cfgbuild.c index d7fa97a3512..475739d7a42 100644 --- a/gcc/cfgbuild.c +++ b/gcc/cfgbuild.c @@ -284,8 +284,8 @@ make_edges (basic_block min, basic_block max, int update_p) everything on the forced_labels list. */ else if (computed_jump_p (insn)) { - for (rtx_expr_list *x = forced_labels; x; x = x->next ()) - make_label_edge (edge_cache, bb, x->element (), EDGE_ABNORMAL); + for (rtx_insn_list *x = forced_labels; x; x = x->next ()) + make_label_edge (edge_cache, bb, x->insn (), EDGE_ABNORMAL); } /* Returns create an exit out. */ diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c index 7c495e4876d..8b00b1e89ed 100644 --- a/gcc/dwarf2cfi.c +++ b/gcc/dwarf2cfi.c @@ -2309,8 +2309,8 @@ create_trace_edges (rtx insn) } else if (computed_jump_p (insn)) { - for (rtx_expr_list *lab = forced_labels; lab; lab = lab->next ()) - maybe_record_trace_start (lab->element (), insn); + for (rtx_insn_list *lab = forced_labels; lab; lab = lab->next ()) + maybe_record_trace_start (lab->insn (), insn); } else if (returnjump_p (insn)) ; diff --git a/gcc/except.c b/gcc/except.c index 05da989e32a..99a66a00fef 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -1310,7 +1310,7 @@ sjlj_emit_dispatch_table (rtx_code_label *dispatch_label, int num_dispatch) CFG edges more exactly, we can use the forced_labels list instead. */ LABEL_PRESERVE_P (dispatch_label) = 1; forced_labels - = gen_rtx_EXPR_LIST (VOIDmode, dispatch_label, forced_labels); + = gen_rtx_INSN_LIST (VOIDmode, dispatch_label, forced_labels); #endif /* Load up exc_ptr and filter values from the function context. */ diff --git a/gcc/function.h b/gcc/function.h index 3921d21f0ae..071f5dd237c 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -135,7 +135,7 @@ struct GTY(()) expr_status { rtx x_apply_args_value; /* List of labels that must never be deleted. */ - rtx_expr_list *x_forced_labels; + rtx_insn_list *x_forced_labels; }; typedef struct call_site_record_d *call_site_record; diff --git a/gcc/jump.c b/gcc/jump.c index 05c8138db56..a8b7bfb8478 100644 --- a/gcc/jump.c +++ b/gcc/jump.c @@ -74,7 +74,7 @@ static int invert_exp_1 (rtx, rtx); static void rebuild_jump_labels_1 (rtx_insn *f, bool count_forced) { - rtx_expr_list *insn; + rtx_insn_list *insn; timevar_push (TV_REBUILD_JUMP); init_label_info (f); @@ -86,8 +86,8 @@ rebuild_jump_labels_1 (rtx_insn *f, bool count_forced) if (count_forced) for (insn = forced_labels; insn; insn = insn->next ()) - if (LABEL_P (insn->element ())) - LABEL_NUSES (insn->element ())++; + if (LABEL_P (insn->insn ())) + LABEL_NUSES (insn->insn ())++; timevar_pop (TV_REBUILD_JUMP); } diff --git a/gcc/reload1.c b/gcc/reload1.c index 0a01b1b503e..153c284ff1d 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -3911,9 +3911,9 @@ set_initial_label_offsets (void) { memset (offsets_known_at, 0, num_labels); - for (rtx_expr_list *x = forced_labels; x; x = x->next ()) - if (x->element ()) - set_label_offsets (x->element (), NULL, 1); + for (rtx_insn_list *x = forced_labels; x; x = x->next ()) + if (x->insn ()) + set_label_offsets (x->insn (), NULL, 1); for (rtx_insn_list *x = nonlocal_goto_handler_labels; x; x = x->next ()) if (x->insn ()) diff --git a/gcc/stmt.c b/gcc/stmt.c index 1cbd63d53a2..70dad0cdb09 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -141,12 +141,12 @@ label_rtx (tree label) rtx force_label_rtx (tree label) { - rtx ref = label_rtx (label); + rtx_insn *ref = as_a <rtx_insn *> (label_rtx (label)); tree function = decl_function_context (label); gcc_assert (function); - forced_labels = gen_rtx_EXPR_LIST (VOIDmode, ref, forced_labels); + forced_labels = gen_rtx_INSN_LIST (VOIDmode, ref, forced_labels); return ref; } @@ -176,7 +176,7 @@ emit_jump (rtx label) void expand_label (tree label) { - rtx label_r = label_rtx (label); + rtx_insn *label_r = as_a <rtx_insn *> (label_rtx (label)); do_pending_stack_adjust (); emit_label (label_r); @@ -192,7 +192,7 @@ expand_label (tree label) } if (FORCED_LABEL (label)) - forced_labels = gen_rtx_EXPR_LIST (VOIDmode, label_r, forced_labels); + forced_labels = gen_rtx_INSN_LIST (VOIDmode, label_r, forced_labels); if (DECL_NONLOCAL (label) || FORCED_LABEL (label)) maybe_set_first_label_num (label_r); |