]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
shrink-wrap.*: Use rtx_insn (touches config/i386/i386.c)
authorDavid Malcolm <dmalcolm@redhat.com>
Fri, 22 Aug 2014 21:42:53 +0000 (21:42 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Fri, 22 Aug 2014 21:42:53 +0000 (21:42 +0000)
gcc/
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.

From-SVN: r214381

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/shrink-wrap.c
gcc/shrink-wrap.h

index 4e28a80ee555e1425181863b4b2b597eb3ff9dc9..ae34bd9b5e9e2799665783aa064940c0809cf083 100644 (file)
@@ -1,3 +1,23 @@
+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
index cc4b0c7fe3a0a1a296801fe9f9de02ece9c8bc78..3e4c93ec3ac8e8513a8efc55f2f165edeeff8d4f 100644 (file)
@@ -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,
index 5c34fee39f95bb6df7943b17e8ab081570b98580..0938f2c5b739a83ffcb23f1c62ccefbcdadfee49 100644 (file)
@@ -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);
index bccfb31aad3d1208e41e4d06402075152e6cbac7..5576d367b8ef53a9ec88b3a2f4e2008783be7e22 100644 (file)
@@ -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,