gcc/
        * 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.
---
 gcc/config/i386/i386.c |  2 +-
 gcc/shrink-wrap.c      | 19 ++++++++++---------
 gcc/shrink-wrap.h      |  5 +++--
 3 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 8827256..ea79519 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -10669,7 +10669,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 7d9c6e7..785ca21 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 *df_rec;
@@ -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 *ref;
   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 bccfb31..5576d36 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,
-- 
1.8.5.3

Reply via email to