Convert edge_def.insns.r to rtx_insn *
authordmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 25 Aug 2014 20:15:36 +0000 (20:15 +0000)
committerdmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4>
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 *.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214471 138bc75d-0d04-0410-961f-82ee72b054a4

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 ec66943..6480864 100644 (file)
@@ -1,5 +1,24 @@
 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_"
        from rtx to rtx_insn *.
        (BB_FOOTER): Replace function with access macro.
index 1f23f04..5efe98e 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 1676294..6c2b693 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 458278c..5a7c135 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 1f73781..fa77faa 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 e8f0408..9c7b07f 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 700a998..bdd309a 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 88aff5c..2d43bc2 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;
              }