]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
BB_NOTE_LIST scaffolding
authorDavid Malcolm <dmalcolm@redhat.com>
Tue, 19 Aug 2014 16:00:59 +0000 (16:00 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Tue, 19 Aug 2014 16:00:59 +0000 (16:00 +0000)
gcc/
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

* sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
"note_list" field will eventually be an rtx_insn *.  To help with
transition, for now, convert from an access macro into a pair of
functions: BB_NOTE_LIST, returning an rtx_insn *, and...
(SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
used as an lvalue.

* sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
of BB_NOTE_LIST to SET_BB_NOTE_LIST.

* sel-sched-ir.c (init_bb): Likewise.
(sel_restore_notes): Likewise.
(move_bb_info): Likewise.
(BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
(SET_BB_NOTE_LIST): New function.

/
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

* rtx-classes-status.txt (TODO): Add SET_BB_NOTE_LIST.

From-SVN: r214167

ChangeLog
gcc/ChangeLog
gcc/sel-sched-ir.c
gcc/sel-sched-ir.h
gcc/sel-sched.c
rtx-classes-status.txt

index 4a95e5ef8637fdc482c915a2a464016f34e73d33..b06346ce702839e62b7e168d89d10604b1e0bcb3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2014-08-19  David Malcolm  <dmalcolm@redhat.com>
+
+       * rtx-classes-status.txt (TODO): Add SET_BB_NOTE_LIST.
+
 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
 
        * rtx-classes-status.txt (TODO): Add SET_VINSN_INSN_RTX.
index 5644066fad6cf2232f5429f7a1c869bbbce14fcc..2d0e649daa8faecae706b7912a587f6530784ae8 100644 (file)
@@ -1,3 +1,21 @@
+2014-08-19  David Malcolm  <dmalcolm@redhat.com>
+
+       * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
+       "note_list" field will eventually be an rtx_insn *.  To help with
+       transition, for now, convert from an access macro into a pair of
+       functions: BB_NOTE_LIST, returning an rtx_insn *, and...
+       (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
+       used as an lvalue.
+
+       * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
+       of BB_NOTE_LIST to SET_BB_NOTE_LIST.
+
+       * sel-sched-ir.c (init_bb): Likewise.
+       (sel_restore_notes): Likewise.
+       (move_bb_info): Likewise.
+       (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
+       (SET_BB_NOTE_LIST): New function.
+
 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
 
        * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
index f5e0d5532643b65965ce33631f2b7636909d91ea..91656499a7ffa1e54f684358f5962da2d7ac9a59 100644 (file)
@@ -4620,7 +4620,7 @@ static void
 init_bb (basic_block bb)
 {
   remove_notes (bb_note (bb), BB_END (bb));
-  BB_NOTE_LIST (bb) = note_list;
+  SET_BB_NOTE_LIST (bb) = note_list;
 }
 
 void
@@ -4655,7 +4655,7 @@ sel_restore_notes (void)
        {
          note_list = BB_NOTE_LIST (first);
          restore_other_notes (NULL, first);
-         BB_NOTE_LIST (first) = NULL_RTX;
+         SET_BB_NOTE_LIST (first) = NULL_RTX;
 
          FOR_BB_INSNS (first, insn)
            if (NONDEBUG_INSN_P (insn))
@@ -5263,8 +5263,8 @@ move_bb_info (basic_block merge_bb, basic_block empty_bb)
 {
   if (in_current_region_p (merge_bb))
     concat_note_lists (BB_NOTE_LIST (empty_bb),
-                      &BB_NOTE_LIST (merge_bb));
-  BB_NOTE_LIST (empty_bb) = NULL_RTX;
+                      &SET_BB_NOTE_LIST (merge_bb));
+  SET_BB_NOTE_LIST (empty_bb) = NULL_RTX;
 
 }
 
@@ -6452,4 +6452,15 @@ rtx& SET_VINSN_INSN_RTX (vinsn_t vi)
   return vi->insn_rtx;
 }
 
+rtx_insn *BB_NOTE_LIST (basic_block bb)
+{
+  rtx note_list = SEL_REGION_BB_INFO (bb)->note_list;
+  return safe_as_a <rtx_insn *> (note_list);
+}
+
+rtx& SET_BB_NOTE_LIST (basic_block bb)
+{
+  return SEL_REGION_BB_INFO (bb)->note_list;
+}
+
 #endif
index 7aef287cf8587f07f33580dc1c4d28ab3f004521..81accaf6e7c79fae10bd2001aa0c59d93fa4ee72 100644 (file)
@@ -920,7 +920,8 @@ extern vec<sel_region_bb_info_def> sel_region_bb_info;
    A note_list is a list of various notes that was scattered across BB
    before scheduling, and will be appended at the beginning of BB after
    scheduling is finished.  */
-#define BB_NOTE_LIST(BB) (SEL_REGION_BB_INFO (BB)->note_list)
+extern rtx_insn *BB_NOTE_LIST (basic_block);
+extern rtx& SET_BB_NOTE_LIST (basic_block);
 
 #define BB_AV_SET(BB) (SEL_REGION_BB_INFO (BB)->av_set)
 #define BB_AV_LEVEL(BB) (SEL_REGION_BB_INFO (BB)->av_level)
index 7b3c43303b789c93d899d183cd8495d55092bc10..2d9bc81b27ab09ba03f0fabf1bcd7e24468c96d5 100644 (file)
@@ -4585,8 +4585,8 @@ create_block_for_bookkeeping (edge e1, edge e2)
 
   /* Move note_list from the upper bb.  */
   gcc_assert (BB_NOTE_LIST (new_bb) == NULL_RTX);
-  BB_NOTE_LIST (new_bb) = BB_NOTE_LIST (bb);
-  BB_NOTE_LIST (bb) = NULL_RTX;
+  SET_BB_NOTE_LIST (new_bb) = BB_NOTE_LIST (bb);
+  SET_BB_NOTE_LIST (bb) = NULL_RTX;
 
   gcc_assert (e2->dest == bb);
 
index f4bb9a053e4dd873dd26377968aee4dafa19deca..ea0941a03bd69b8875f989febe64e9bb237e5683 100644 (file)
@@ -16,6 +16,7 @@ TODO: "Scaffolding" to be removed
 =================================
 * DF_REF_INSN
 * SET_BB_HEAD, SET_BB_END, SET_BB_HEADER, SET_BB_FOOTER
+* SET_BB_NOTE_LIST
 * SET_DEP_PRO, SET_DEP_CON
 * SET_NEXT_INSN, SET_PREV_INSN
 * SET_VINSN_INSN_RTX