diff options
-rw-r--r-- | gcc/ChangeLog | 20 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 2 | ||||
-rw-r--r-- | gcc/shrink-wrap.c | 19 | ||||
-rw-r--r-- | gcc/shrink-wrap.h | 5 |
4 files changed, 34 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4e28a80ee55..ae34bd9b5e9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,25 @@ 2014-08-22 David Malcolm <dmalcolm@redhat.com> + * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1 + "insn" from rtx to rtx_insn *. + (dup_block_and_redirect): Likewise for param 3 "before". + + * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn" + from rtx to rtx_insn *. + (move_insn_for_shrink_wrap): Likewise. + (prepare_shrink_wrap): Likewise for locals "insn", "curr". + (dup_block_and_redirect): Likewise for param "before" and local + "insn". + (try_shrink_wrapping): Likewise for locals "insn", "insert_point", + "end". + (convert_to_simple_return): Likewise for local "start". + + * config/i386/i386.c (ix86_finalize_stack_realign_flags): + Strengthen local "insn" from rtx to rtx_insn *, for use when + invoking requires_stack_frame_p. + +2014-08-22 David Malcolm <dmalcolm@redhat.com> + * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to rtx_insn *. (speculate_expr): Likewise for locals "orig_insn_rtx", diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index cc4b0c7fe3a..3e4c93ec3ac 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -10698,7 +10698,7 @@ ix86_finalize_stack_realign_flags (void) HARD_FRAME_POINTER_REGNUM); FOR_EACH_BB_FN (bb, cfun) { - rtx insn; + rtx_insn *insn; FOR_BB_INSNS (bb, insn) if (NONDEBUG_INSN_P (insn) && requires_stack_frame_p (insn, prologue_used, diff --git a/gcc/shrink-wrap.c b/gcc/shrink-wrap.c index 5c34fee39f9..0938f2c5b73 100644 --- a/gcc/shrink-wrap.c +++ b/gcc/shrink-wrap.c @@ -61,7 +61,7 @@ along with GCC; see the file COPYING3. If not see prologue. SET_UP_BY_PROLOGUE is the set of registers we expect the prologue to set up for the function. */ bool -requires_stack_frame_p (rtx insn, HARD_REG_SET prologue_used, +requires_stack_frame_p (rtx_insn *insn, HARD_REG_SET prologue_used, HARD_REG_SET set_up_by_prologue) { df_ref def, use; @@ -162,7 +162,7 @@ live_edge_for_reg (basic_block bb, int regno, int end_regno) is splitted or not. */ static bool -move_insn_for_shrink_wrap (basic_block bb, rtx insn, +move_insn_for_shrink_wrap (basic_block bb, rtx_insn *insn, const HARD_REG_SET uses, const HARD_REG_SET defs, bool *split_p) @@ -331,7 +331,8 @@ move_insn_for_shrink_wrap (basic_block bb, rtx insn, void prepare_shrink_wrap (basic_block entry_block) { - rtx insn, curr, x; + rtx_insn *insn, *curr; + rtx x; HARD_REG_SET uses, defs; df_ref def, use; bool split_p = false; @@ -373,12 +374,12 @@ prepare_shrink_wrap (basic_block entry_block) /* Create a copy of BB instructions and insert at BEFORE. Redirect preds of BB to COPY_BB if they don't appear in NEED_PROLOGUE. */ void -dup_block_and_redirect (basic_block bb, basic_block copy_bb, rtx before, +dup_block_and_redirect (basic_block bb, basic_block copy_bb, rtx_insn *before, bitmap_head *need_prologue) { edge_iterator ei; edge e; - rtx insn = BB_END (bb); + rtx_insn *insn = BB_END (bb); /* We know BB has a single successor, so there is no need to copy a simple jump at the end of BB. */ @@ -513,7 +514,7 @@ try_shrink_wrapping (edge *entry_edge, edge orig_entry_edge, FOR_EACH_BB_FN (bb, cfun) { - rtx insn; + rtx_insn *insn; unsigned size = 0; FOR_BB_INSNS (bb, insn) @@ -707,7 +708,7 @@ try_shrink_wrapping (edge *entry_edge, edge orig_entry_edge, FOR_EACH_BB_REVERSE_FN (bb, cfun) { basic_block copy_bb, tbb; - rtx insert_point; + rtx_insn *insert_point; int eflags; if (!bitmap_clear_bit (&bb_tail, bb->index)) @@ -724,7 +725,7 @@ try_shrink_wrapping (edge *entry_edge, edge orig_entry_edge, if (e) { /* Make sure we insert after any barriers. */ - rtx end = get_last_bb_insn (e->src); + rtx_insn *end = get_last_bb_insn (e->src); copy_bb = create_basic_block (NEXT_INSN (end), NULL_RTX, e->src); BB_COPY_PARTITION (copy_bb, e->src); @@ -902,7 +903,7 @@ convert_to_simple_return (edge entry_edge, edge orig_entry_edge, else if (*pdest_bb == NULL) { basic_block bb; - rtx start; + rtx_insn *start; bb = create_basic_block (NULL, NULL, exit_pred); BB_COPY_PARTITION (bb, e->src); diff --git a/gcc/shrink-wrap.h b/gcc/shrink-wrap.h index bccfb31aad3..5576d367b8e 100644 --- a/gcc/shrink-wrap.h +++ b/gcc/shrink-wrap.h @@ -34,10 +34,11 @@ extern basic_block emit_return_for_exit (edge exit_fallthru_edge, bool simple_p); /* In shrink-wrap.c. */ -extern bool requires_stack_frame_p (rtx, HARD_REG_SET, HARD_REG_SET); +extern bool requires_stack_frame_p (rtx_insn *, HARD_REG_SET, HARD_REG_SET); extern void prepare_shrink_wrap (basic_block entry_block); extern void dup_block_and_redirect (basic_block bb, basic_block copy_bb, - rtx before, bitmap_head *need_prologue); + rtx_insn *before, + bitmap_head *need_prologue); extern void try_shrink_wrapping (edge *entry_edge, edge orig_entry_edge, bitmap_head *bb_flags, rtx prologue_seq); extern edge get_unconverted_simple_return (edge, bitmap_head, |