From 71e88baf6b32ccc46e745d601b897757ed7f981c Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Fri, 22 Aug 2014 00:27:43 +0000 Subject: [PATCH] combine-stack-adj.c: Use rtx_insn gcc/ 2014-08-22 David Malcolm * combine-stack-adj.c (struct csa_reflist): Strengthen field "insn" from rtx to rtx_insn *. (single_set_for_csa): Likewise for param "insn". (record_one_stack_ref): Likewise. (try_apply_stack_adjustment): Likewise. (struct record_stack_refs_data): Likewise for field "insn". (maybe_move_args_size_note): Likewise for params "last" and "insn". (prev_active_insn_bb): Likewise for return type and param "insn". (next_active_insn_bb): Likewise. (force_move_args_size_note): Likewise for params "prev" and "last" and locals "test", "next_candidate", "prev_candidate". (combine_stack_adjustments_for_block): Strengthen locals "last_sp_set", "last2_sp_set", "insn", "next" from rtx to rtx_insn *. From-SVN: r214301 --- gcc/ChangeLog | 17 +++++++++++++++++ gcc/combine-stack-adj.c | 49 ++++++++++++++++++++++++++----------------------- 2 files changed, 43 insertions(+), 23 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0800be6..fe7e656 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,20 @@ +2014-08-22 David Malcolm + + * combine-stack-adj.c (struct csa_reflist): Strengthen field + "insn" from rtx to rtx_insn *. + (single_set_for_csa): Likewise for param "insn". + (record_one_stack_ref): Likewise. + (try_apply_stack_adjustment): Likewise. + (struct record_stack_refs_data): Likewise for field "insn". + (maybe_move_args_size_note): Likewise for params "last" and "insn". + (prev_active_insn_bb): Likewise for return type and param "insn". + (next_active_insn_bb): Likewise. + (force_move_args_size_note): Likewise for params "prev" and "last" + and locals "test", "next_candidate", "prev_candidate". + (combine_stack_adjustments_for_block): Strengthen locals + "last_sp_set", "last2_sp_set", "insn", "next" from rtx to + rtx_insn *. + 2014-08-21 David Malcolm * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *. diff --git a/gcc/combine-stack-adj.c b/gcc/combine-stack-adj.c index db771da..25039b9 100644 --- a/gcc/combine-stack-adj.c +++ b/gcc/combine-stack-adj.c @@ -73,16 +73,17 @@ along with GCC; see the file COPYING3. If not see struct csa_reflist { HOST_WIDE_INT sp_offset; - rtx insn, *ref; + rtx_insn *insn; + rtx *ref; struct csa_reflist *next; }; static int stack_memref_p (rtx); -static rtx single_set_for_csa (rtx); +static rtx single_set_for_csa (rtx_insn *); static void free_csa_reflist (struct csa_reflist *); -static struct csa_reflist *record_one_stack_ref (rtx, rtx *, +static struct csa_reflist *record_one_stack_ref (rtx_insn *, rtx *, struct csa_reflist *); -static int try_apply_stack_adjustment (rtx, struct csa_reflist *, +static int try_apply_stack_adjustment (rtx_insn *, struct csa_reflist *, HOST_WIDE_INT, HOST_WIDE_INT); static void combine_stack_adjustments_for_block (basic_block); static int record_stack_refs (rtx *, void *); @@ -122,7 +123,7 @@ stack_memref_p (rtx x) tying fp and sp adjustments. */ static rtx -single_set_for_csa (rtx insn) +single_set_for_csa (rtx_insn *insn) { int i; rtx tmp = single_set (insn); @@ -171,7 +172,7 @@ free_csa_reflist (struct csa_reflist *reflist) predicate stack_memref_p or a REG representing the stack pointer. */ static struct csa_reflist * -record_one_stack_ref (rtx insn, rtx *ref, struct csa_reflist *next_reflist) +record_one_stack_ref (rtx_insn *insn, rtx *ref, struct csa_reflist *next_reflist) { struct csa_reflist *ml; @@ -194,7 +195,7 @@ record_one_stack_ref (rtx insn, rtx *ref, struct csa_reflist *next_reflist) on success. */ static int -try_apply_stack_adjustment (rtx insn, struct csa_reflist *reflist, +try_apply_stack_adjustment (rtx_insn *insn, struct csa_reflist *reflist, HOST_WIDE_INT new_adjust, HOST_WIDE_INT delta) { struct csa_reflist *ml; @@ -240,7 +241,7 @@ try_apply_stack_adjustment (rtx insn, struct csa_reflist *reflist, references in the insn and discard all other stack pointer references. */ struct record_stack_refs_data { - rtx insn; + rtx_insn *insn; struct csa_reflist *reflist; }; @@ -297,7 +298,7 @@ record_stack_refs (rtx *xp, void *data) AFTER is true iff LAST follows INSN in the instruction stream. */ static void -maybe_move_args_size_note (rtx last, rtx insn, bool after) +maybe_move_args_size_note (rtx_insn *last, rtx_insn *insn, bool after) { rtx note, last_note; @@ -319,35 +320,36 @@ maybe_move_args_size_note (rtx last, rtx insn, bool after) /* Return the next (or previous) active insn within BB. */ -static rtx -prev_active_insn_bb (basic_block bb, rtx insn) +static rtx_insn * +prev_active_insn_bb (basic_block bb, rtx_insn *insn) { for (insn = PREV_INSN (insn); insn != PREV_INSN (BB_HEAD (bb)); insn = PREV_INSN (insn)) if (active_insn_p (insn)) return insn; - return NULL_RTX; + return NULL; } -static rtx -next_active_insn_bb (basic_block bb, rtx insn) +static rtx_insn * +next_active_insn_bb (basic_block bb, rtx_insn *insn) { for (insn = NEXT_INSN (insn); insn != NEXT_INSN (BB_END (bb)); insn = NEXT_INSN (insn)) if (active_insn_p (insn)) return insn; - return NULL_RTX; + return NULL; } /* If INSN has a REG_ARGS_SIZE note, if possible move it to PREV. Otherwise search for a nearby candidate within BB where we can stick the note. */ static void -force_move_args_size_note (basic_block bb, rtx prev, rtx insn) +force_move_args_size_note (basic_block bb, rtx_insn *prev, rtx_insn *insn) { - rtx note, test, next_candidate, prev_candidate; + rtx note; + rtx_insn *test, *next_candidate, *prev_candidate; /* If PREV exists, tail-call to the logic in the other function. */ if (prev) @@ -425,10 +427,11 @@ static void combine_stack_adjustments_for_block (basic_block bb) { HOST_WIDE_INT last_sp_adjust = 0; - rtx last_sp_set = NULL_RTX; - rtx last2_sp_set = NULL_RTX; + rtx_insn *last_sp_set = NULL; + rtx_insn *last2_sp_set = NULL; struct csa_reflist *reflist = NULL; - rtx insn, next, set; + rtx_insn *insn, *next; + rtx set; struct record_stack_refs_data data; bool end_of_block = false; @@ -574,7 +577,7 @@ combine_stack_adjustments_for_block (basic_block bb) delete_insn (last_sp_set); free_csa_reflist (reflist); reflist = NULL; - last_sp_set = NULL_RTX; + last_sp_set = NULL; last_sp_adjust = 0; continue; } @@ -603,8 +606,8 @@ combine_stack_adjustments_for_block (basic_block bb) } free_csa_reflist (reflist); reflist = NULL; - last2_sp_set = NULL_RTX; - last_sp_set = NULL_RTX; + last2_sp_set = NULL; + last_sp_set = NULL; last_sp_adjust = 0; } } -- 2.7.4