Remove BB_FOOTER scaffolding
authorDavid Malcolm <dmalcolm@redhat.com>
Mon, 25 Aug 2014 20:13:26 +0000 (20:13 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Mon, 25 Aug 2014 20:13:26 +0000 (20:13 +0000)
gcc/
* basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
from rtx to rtx_insn *.
(BB_FOOTER): Replace function with access macro.
(SET_BB_FOOTER): Delete.

* cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
with BB_FOOTER.
* cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
(emit_barrier_after_bb): Likewise.
(record_effective_endpoints): Likewise.
(relink_block_chain): Likewise.
(fixup_fallthru_exit_predecessor): Likewise.
(cfg_layout_duplicate_bb): Likewise.
(cfg_layout_split_block): Likewise.
(cfg_layout_delete_block): Likewise.
(cfg_layout_merge_blocks): Likewise.
(BB_FOOTER): Delete function.
(SET_BB_FOOTER): Delete function.
* combine.c (update_cfg_for_uncondjump): Replace uses of
SET_BB_FOOTER with BB_FOOTER.

/
* rtx-classes-status.txt (TODO): Remove SET_BB_FOOTER.

From-SVN: r214470

ChangeLog
gcc/ChangeLog
gcc/basic-block.h
gcc/cfgcleanup.c
gcc/cfgrtl.c
gcc/combine.c
rtx-classes-status.txt

index cc44e42f789d21436e593c1542028dc04a330321..8363862f3cfe8468e56f4c6e1c4c8dd60d477007 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2014-08-25  David Malcolm  <dmalcolm@redhat.com>
+
+       * rtx-classes-status.txt (TODO): Remove SET_BB_FOOTER.
+
 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
 
        * rtx-classes-status.txt: Phase 3 (per-file commits within
index d13b175e5f8ff3eb1df4b28dcd8127d2d0c95de5..ec66943cbb3ee4f1fbdf0ac0de31adf85bf472e2 100644 (file)
@@ -1,3 +1,26 @@
+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.
+       (SET_BB_FOOTER): Delete.
+
+       * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
+       with BB_FOOTER.
+       * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
+       (emit_barrier_after_bb): Likewise.
+       (record_effective_endpoints): Likewise.
+       (relink_block_chain): Likewise.
+       (fixup_fallthru_exit_predecessor): Likewise.
+       (cfg_layout_duplicate_bb): Likewise.
+       (cfg_layout_split_block): Likewise.
+       (cfg_layout_delete_block): Likewise.
+       (cfg_layout_merge_blocks): Likewise.
+       (BB_FOOTER): Delete function.
+       (SET_BB_FOOTER): Delete function.
+       * combine.c (update_cfg_for_uncondjump): Replace uses of
+       SET_BB_FOOTER with BB_FOOTER.
+
 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
 
        * except.h (struct eh_landing_pad_d): Strengthen field
index f640f399eec4fa585f7093297b7336edb1e3c34b..1f23f04fb219e23b6464aed8b01dd582f0449566 100644 (file)
@@ -127,7 +127,7 @@ struct GTY(()) rtl_bb_info {
   /* In CFGlayout mode points to insn notes/jumptables to be placed just before
      and after the block.   */
   rtx header_;
-  rtx footer_;
+  rtx_insn *footer_;
 };
 
 struct GTY(()) gimple_bb_info {
@@ -381,8 +381,7 @@ extern rtx& SET_BB_END (basic_block bb);
 extern rtx_insn *BB_HEADER (const_basic_block bb);
 extern rtx& SET_BB_HEADER (basic_block bb);
 
-extern rtx_insn *BB_FOOTER (const_basic_block bb);
-extern rtx& SET_BB_FOOTER (basic_block bb);
+#define BB_FOOTER(B)    (B)->il.x.rtl->footer_
 
 /* Special block numbers [markers] for entry and exit.
    Neither of them is supposed to hold actual statements.  */
index 17426cc5591c0a70c0456f4a6f17c80728814f1e..ba0ab58f0f5aa8f9304ee03cd25914a8fcff6bcb 100644 (file)
@@ -2676,13 +2676,13 @@ try_optimize_cfg (int mode)
                                {
                                  if (BB_FOOTER (b))
                                    {
-                                     SET_BB_FOOTER (e->src) = BB_FOOTER (b);
-                                     SET_BB_FOOTER (b) = NULL;
+                                     BB_FOOTER (e->src) = BB_FOOTER (b);
+                                     BB_FOOTER (b) = NULL;
                                    }
                                  else
                                    {
                                      start_sequence ();
-                                     SET_BB_FOOTER (e->src) = emit_barrier ();
+                                     BB_FOOTER (e->src) = emit_barrier ();
                                      end_sequence ();
                                    }
                                }
index 59f093782c2d5fd84c63c955be7d736bfc2bd818..458278c5e4de08208ec5b54ee2da1531ece105d1 100644 (file)
@@ -1063,7 +1063,7 @@ try_redirect_by_replacing_jump (edge e, basic_block target, bool in_cfglayout)
                  if (PREV_INSN (insn))
                    SET_NEXT_INSN (PREV_INSN (insn)) = NEXT_INSN (insn);
                  else
-                   SET_BB_FOOTER (src) = NEXT_INSN (insn);
+                   BB_FOOTER (src) = NEXT_INSN (insn);
                  if (NEXT_INSN (insn))
                    SET_PREV_INSN (NEXT_INSN (insn)) = PREV_INSN (insn);
                }
@@ -1451,7 +1451,7 @@ emit_barrier_after_bb (basic_block bb)
   gcc_assert (current_ir_type () == IR_RTL_CFGRTL
               || current_ir_type () == IR_RTL_CFGLAYOUT);
   if (current_ir_type () == IR_RTL_CFGLAYOUT)
-    SET_BB_FOOTER (bb) = unlink_insn_chain (barrier, barrier);
+    BB_FOOTER (bb) = unlink_insn_chain (barrier, barrier);
 }
 
 /* Like force_nonfallthru below, but additionally performs redirection
@@ -3462,7 +3462,7 @@ record_effective_endpoints (void)
                                                PREV_INSN (BB_HEAD (bb)));
       end = skip_insns_after_block (bb);
       if (NEXT_INSN (BB_END (bb)) && BB_END (bb) != end)
-       SET_BB_FOOTER (bb) = unlink_insn_chain (NEXT_INSN (BB_END (bb)), end);
+       BB_FOOTER (bb) = unlink_insn_chain (NEXT_INSN (BB_END (bb)), end);
       next_insn = NEXT_INSN (BB_END (bb));
     }
 
@@ -3620,7 +3620,7 @@ relink_block_chain (bool stay_in_cfglayout_mode)
     {
       bb->aux = NULL;
       if (!stay_in_cfglayout_mode)
-       SET_BB_HEADER (bb) = SET_BB_FOOTER (bb) = NULL;
+       SET_BB_HEADER (bb) = BB_FOOTER (bb) = NULL;
     }
 
   /* Maybe reset the original copy tables, they are not valid anymore
@@ -3988,8 +3988,8 @@ fixup_fallthru_exit_predecessor (void)
          bb = split_block (bb, NULL)->dest;
          bb->aux = c->aux;
          c->aux = bb;
-         SET_BB_FOOTER (bb) = BB_FOOTER (c);
-         SET_BB_FOOTER (c) = NULL;
+         BB_FOOTER (bb) = BB_FOOTER (c);
+         BB_FOOTER (c) = NULL;
        }
 
       while (c->aux != bb)
@@ -4203,7 +4203,7 @@ cfg_layout_duplicate_bb (basic_block bb)
        insn = NEXT_INSN (insn);
       insn = duplicate_insn_chain (BB_FOOTER (bb), insn);
       if (insn)
-       SET_BB_FOOTER (new_bb) = unlink_insn_chain (insn, get_last_insn ());
+       BB_FOOTER (new_bb) = unlink_insn_chain (insn, get_last_insn ());
     }
 
   return new_bb;
@@ -4311,8 +4311,8 @@ cfg_layout_split_block (basic_block bb, void *insnp)
   rtx insn = (rtx) insnp;
   basic_block new_bb = rtl_split_block (bb, insn);
 
-  SET_BB_FOOTER (new_bb) = BB_FOOTER (bb);
-  SET_BB_FOOTER (bb) = NULL;
+  BB_FOOTER (new_bb) = BB_FOOTER (bb);
+  BB_FOOTER (bb) = NULL;
 
   return new_bb;
 }
@@ -4443,7 +4443,7 @@ cfg_layout_delete_block (basic_block bb)
              if (PREV_INSN (insn))
                SET_NEXT_INSN (PREV_INSN (insn)) = NEXT_INSN (insn);
              else
-               SET_BB_FOOTER (bb) = NEXT_INSN (insn);
+               BB_FOOTER (bb) = NEXT_INSN (insn);
              if (NEXT_INSN (insn))
                SET_PREV_INSN (NEXT_INSN (insn)) = PREV_INSN (insn);
            }
@@ -4578,7 +4578,7 @@ cfg_layout_merge_blocks (basic_block a, basic_block b)
   if (BB_FOOTER (b))
     {
       if (!BB_FOOTER (a))
-       SET_BB_FOOTER (a) = SET_BB_FOOTER (b);
+       BB_FOOTER (a) = BB_FOOTER (b);
       else
        {
          rtx_insn *last = BB_FOOTER (a);
@@ -4588,7 +4588,7 @@ cfg_layout_merge_blocks (basic_block a, basic_block b)
          SET_NEXT_INSN (last) = BB_FOOTER (b);
          SET_PREV_INSN (BB_FOOTER (b)) = last;
        }
-      SET_BB_FOOTER (b) = NULL;
+      BB_FOOTER (b) = NULL;
     }
 
   /* Move things from b->header before a->footer.
@@ -4597,7 +4597,7 @@ cfg_layout_merge_blocks (basic_block a, basic_block b)
    if (BB_HEADER (b))
      {
       if (! BB_FOOTER (a))
-       SET_BB_FOOTER (a) = BB_HEADER (b);
+       BB_FOOTER (a) = BB_HEADER (b);
       else
        {
          rtx_insn *last = BB_HEADER (b);
@@ -4606,7 +4606,7 @@ cfg_layout_merge_blocks (basic_block a, basic_block b)
            last = NEXT_INSN (last);
          SET_NEXT_INSN (last) = BB_FOOTER (a);
          SET_PREV_INSN (BB_FOOTER (a)) = last;
-         SET_BB_FOOTER (a) = BB_HEADER (b);
+         BB_FOOTER (a) = BB_HEADER (b);
        }
       SET_BB_HEADER (b) = NULL;
     }
@@ -5150,19 +5150,4 @@ rtx& SET_BB_HEADER (basic_block bb)
   return bb->il.x.rtl->header_;
 }
 
-/* BB_FOOTER as an rvalue. */
-
-rtx_insn *BB_FOOTER (const_basic_block bb)
-{
-  rtx insn = bb->il.x.rtl->footer_;
-  return safe_as_a <rtx_insn *> (insn);
-}
-
-/* BB_FOOTER as an lvalue. */
-
-rtx& SET_BB_FOOTER (basic_block bb)
-{
-  return bb->il.x.rtl->footer_;
-}
-
 #include "gt-cfgrtl.h"
index 1a768d5e273ee5d3893268222a41ea525bc4185a..35d226eea732aecd189736e817aa6bda97a69410 100644 (file)
@@ -2425,7 +2425,7 @@ update_cfg_for_uncondjump (rtx_insn *insn)
            if (PREV_INSN (insn))
              SET_NEXT_INSN (PREV_INSN (insn)) = NEXT_INSN (insn);
            else
-             SET_BB_FOOTER (bb) = NEXT_INSN (insn);
+             BB_FOOTER (bb) = NEXT_INSN (insn);
            if (NEXT_INSN (insn))
              SET_PREV_INSN (NEXT_INSN (insn)) = PREV_INSN (insn);
          }
index 3c9f29da54bfe40965f12c389b096ae57bbcc45b..85ce4748b8c443e27661fde6aac66c165639aed1 100644 (file)
@@ -15,7 +15,7 @@ Phase 6: use extra rtx_def subclasses:             TODO
 TODO: "Scaffolding" to be removed
 =================================
 * DF_REF_INSN
-* SET_BB_HEAD, SET_BB_END, SET_BB_HEADER, SET_BB_FOOTER
+* SET_BB_HEAD, SET_BB_END, SET_BB_HEADER
 * SET_BB_NOTE_LIST
 * SET_BND_TO
 * SET_DEP_PRO, SET_DEP_CON