Convert edge_def.insns.r to rtx_insn *
authorDavid Malcolm <dmalcolm@redhat.com>
Mon, 25 Aug 2014 20:15:36 +0000 (20:15 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Mon, 25 Aug 2014 20:15:36 +0000 (20:15 +0000)
gcc/
* basic-block.h (struct edge_def). Strengthen "r" within
union edge_def_insns from rtx to rtx_insn *.

* cfgexpand.c (pass_expand::execute): Remove now-redundant cast
from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
rtx_insn *.
* cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
from rtx to rtx_insn *.
* cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
rtx_insn *.
* postreload-gcse.c (reg_killed_on_edge): Likewise.
(reg_used_on_edge): Likewise.
* tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
(gt_pch_nx): New overload for rtx_insn *&.
* tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
from rtx to rtx_insn *.

From-SVN: r214471

gcc/ChangeLog
gcc/basic-block.h
gcc/cfgexpand.c
gcc/cfgrtl.c
gcc/cprop.c
gcc/postreload-gcse.c
gcc/tree-cfg.c
gcc/tree-outof-ssa.c

index ec66943cbb3ee4f1fbdf0ac0de31adf85bf472e2..64808645a8c0482fb987bcc78bedfd5bcdf1b358 100644 (file)
@@ -1,3 +1,22 @@
+2014-08-25  David Malcolm  <dmalcolm@redhat.com>
+
+       * basic-block.h (struct edge_def). Strengthen "r" within
+       union edge_def_insns from rtx to rtx_insn *.
+
+       * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
+       from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
+       rtx_insn *.
+       * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
+       from rtx to rtx_insn *.
+       * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
+       rtx_insn *.
+       * postreload-gcse.c (reg_killed_on_edge): Likewise.
+       (reg_used_on_edge): Likewise.
+       * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
+       (gt_pch_nx): New overload for rtx_insn *&.
+       * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
+       from rtx to rtx_insn *.
+
 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
 
        * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
index 1f23f04fb219e23b6464aed8b01dd582f0449566..5efe98e7408ddc680bc089fd50ee8cfdf8763bb3 100644 (file)
@@ -39,7 +39,7 @@ struct GTY((user)) edge_def {
   /* Instructions queued on the edge.  */
   union edge_def_insns {
     gimple_seq g;
-    rtx r;
+    rtx_insn *r;
   } insns;
 
   /* Auxiliary info specific to a pass.  */
index 16762941a35199ffc0b6778901fe2b068aa5ca99..6c2b693c3101100ac46b9e5816dfe492a894a783 100644 (file)
@@ -5865,14 +5865,14 @@ pass_expand::execute (function *fun)
        {
          if (e->insns.r)
            {
-             rebuild_jump_labels_chain (as_a <rtx_insn *> (e->insns.r));
+             rebuild_jump_labels_chain (e->insns.r);
              /* Put insns after parm birth, but before
                 NOTE_INSNS_FUNCTION_BEG.  */
              if (e->src == ENTRY_BLOCK_PTR_FOR_FN (fun)
                  && single_succ_p (ENTRY_BLOCK_PTR_FOR_FN (fun)))
                {
-                 rtx insns = e->insns.r;
-                 e->insns.r = NULL_RTX;
+                 rtx_insn *insns = e->insns.r;
+                 e->insns.r = NULL;
                  if (NOTE_P (parm_birth_insn)
                      && NOTE_KIND (parm_birth_insn) == NOTE_INSN_FUNCTION_BEG)
                    emit_insn_before_noloc (insns, parm_birth_insn, e->dest);
index 458278c5e4de08208ec5b54ee2da1531ece105d1..5a7c1351f74bdc0f4a288269438586c734518bf0 100644 (file)
@@ -1950,8 +1950,8 @@ commit_one_edge_insertion (edge e)
   basic_block bb;
 
   /* Pull the insns off the edge now since the edge might go away.  */
-  insns = safe_as_a <rtx_insn *> (e->insns.r);
-  e->insns.r = NULL_RTX;
+  insns = e->insns.r;
+  e->insns.r = NULL;
 
   /* Figure out where to put these insns.  If the destination has
      one predecessor, insert there.  Except for the exit block.  */
index 1f73781bb11a72f5f20e7742fedcc2a15126cd4a..fa77faac51f5806d014595743066681695910e2c 100644 (file)
@@ -1470,7 +1470,7 @@ find_bypass_set (int regno, int bb)
 static bool
 reg_killed_on_edge (const_rtx reg, const_edge e)
 {
-  rtx insn;
+  rtx_insn *insn;
 
   for (insn = e->insns.r; insn; insn = NEXT_INSN (insn))
     if (INSN_P (insn) && reg_set_p (reg, insn))
index e8f040887c5d56a5a134a4609b8c4d2e65268770..9c7b07fcdb49862939aa64621cbc1858a0cbf785 100644 (file)
@@ -860,7 +860,7 @@ compute_hash_table (void)
 static bool
 reg_killed_on_edge (rtx reg, edge e)
 {
-  rtx insn;
+  rtx_insn *insn;
 
   for (insn = e->insns.r; insn; insn = NEXT_INSN (insn))
     if (INSN_P (insn) && reg_set_p (reg, insn))
@@ -877,7 +877,7 @@ reg_killed_on_edge (rtx reg, edge e)
 static bool
 reg_used_on_edge (rtx reg, edge e)
 {
-  rtx insn;
+  rtx_insn *insn;
 
   for (insn = e->insns.r; insn; insn = NEXT_INSN (insn))
     if (INSN_P (insn) && reg_overlap_mentioned_p (reg, PATTERN (insn)))
index 700a998555145942f4240839d3c76b7acd7587ca..bdd309a62f6700189dcd42abd562cba1894c3517 100644 (file)
@@ -8611,6 +8611,13 @@ extern void gt_ggc_mx (gimple&);
 extern void gt_ggc_mx (rtx&);
 extern void gt_ggc_mx (basic_block&);
 
+static void
+gt_ggc_mx (rtx_insn *& x)
+{
+  if (x)
+    gt_ggc_mx_rtx_def ((void *) x);
+}
+
 void
 gt_ggc_mx (edge_def *e)
 {
@@ -8631,6 +8638,13 @@ extern void gt_pch_nx (gimple&);
 extern void gt_pch_nx (rtx&);
 extern void gt_pch_nx (basic_block&);
 
+static void
+gt_pch_nx (rtx_insn *& x)
+{
+  if (x)
+    gt_pch_nx_rtx_def ((void *) x);
+}
+
 void
 gt_pch_nx (edge_def *e)
 {
index 88aff5ca554d58cee8d86348c87ae1b57f91cca5..2d43bc20c9ba093cd4955e3b00ce9f892d5a9002 100644 (file)
@@ -958,9 +958,9 @@ expand_phi_nodes (struct ssaexpand *sa)
            if (e->insns.r && (e->flags & EDGE_EH)
                && !single_pred_p (e->dest))
              {
-               rtx insns = e->insns.r;
+               rtx_insn *insns = e->insns.r;
                basic_block bb;
-               e->insns.r = NULL_RTX;
+               e->insns.r = NULL;
                bb = split_edge (e);
                single_pred_edge (bb)->insns.r = insns;
              }