diff mbox

[016/236] BND_TO scaffolding

Message ID 1408466393.2473.86.camel@surprise
State New
Headers show

Commit Message

David Malcolm Aug. 19, 2014, 4:39 p.m. UTC
On Tue, 2014-08-12 at 15:22 -0600, Jeff Law wrote:
> On 08/06/14 11:19, David Malcolm wrote:
> > gcc/
> > 	* sel-sched-ir.h (BND_TO): insn_t will eventually be an
> > 	rtx_insn *.  To help with transition, for now, convert from an
> > 	access macro into a pair of functions: BND_TO, returning an
> > 	rtx_insn *, and...
> > 	(SET_BND_TO): New function, for use where BND_TO is used as an
> > 	lvalue.
> >
> > 	* sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
> > 	SET_BND_TO.
> > 	(BND_TO): New function, adding a checked cast.
> > 	(SET_BND_TO): New function.
> >
> > 	* sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
> > 	SET_BND_TO.
> > 	(compute_av_set_on_boundaries): Likewise.
> >
> > /
> > 	* rtx-classes-status.txt: Add SET_BND_TO
> OK.

Thanks.

Fixed up the as_a_nullable to safe_as_a, and committed to trunk as
r214170, having verified bootstrap&regrtest on x86_64-unknown-linux-gnu
(Fedora 20) albeit in combination with patches 9-29 [1], and verified
that it builds standalone with 9 targets.

Am attaching what I committed.

FWIW these functions become a macro again in patch #173.


Dave

[1] as per https://gcc.gnu.org/ml/gcc-patches/2014-08/msg01420.html
diff mbox

Patch

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 214169)
+++ ChangeLog	(revision 214170)
@@ -1,5 +1,9 @@ 
 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
 
+	* rtx-classes-status.txt (TODO): Add SET_BND_TO
+
+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>
Index: rtx-classes-status.txt
===================================================================
--- rtx-classes-status.txt	(revision 214169)
+++ rtx-classes-status.txt	(revision 214170)
@@ -17,6 +17,7 @@ 
 * DF_REF_INSN
 * SET_BB_HEAD, SET_BB_END, SET_BB_HEADER, SET_BB_FOOTER
 * SET_BB_NOTE_LIST
+* SET_BND_TO
 * SET_DEP_PRO, SET_DEP_CON
 * SET_NEXT_INSN, SET_PREV_INSN
 * SET_VINSN_INSN_RTX
Index: gcc/ChangeLog
===================================================================
--- gcc/ChangeLog	(revision 214169)
+++ gcc/ChangeLog	(revision 214170)
@@ -1,3 +1,21 @@ 
+2014-08-19  David Malcolm  <dmalcolm@redhat.com>
+
+	* sel-sched-ir.h (BND_TO): insn_t will eventually be an
+	rtx_insn *.  To help with transition, for now, convert from an
+	access macro into a pair of functions: BND_TO, returning an
+	rtx_insn *, and...
+	(SET_BND_TO): New function, for use where BND_TO is used as an
+	lvalue.
+
+	* sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
+	SET_BND_TO.
+	(BND_TO): New function, adding a checked cast.
+	(SET_BND_TO): New function.
+
+	* sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
+	SET_BND_TO.
+	(compute_av_set_on_boundaries): Likewise.
+
 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
Index: gcc/sel-sched.c
===================================================================
--- gcc/sel-sched.c	(revision 214169)
+++ gcc/sel-sched.c	(revision 214170)
@@ -4954,7 +4954,7 @@ 
 
   /* Jump is moved to the boundary.  */
   next = PREV_INSN (insn);
-  BND_TO (bnd) = insn;
+  SET_BND_TO (bnd) = insn;
 
   ft_edge = find_fallthru_edge_from (block_from);
   block_next = ft_edge->dest;
@@ -5095,7 +5095,7 @@ 
 	{
   	  gcc_assert (FENCE_INSN (fence) == BND_TO (bnd));
 	  FENCE_INSN (fence) = bnd_to;
-	  BND_TO (bnd) = bnd_to;
+	  SET_BND_TO (bnd) = bnd_to;
 	}
 
       av_set_clear (&BND_AV (bnd));
Index: gcc/sel-sched-ir.c
===================================================================
--- gcc/sel-sched-ir.c	(revision 214169)
+++ gcc/sel-sched-ir.c	(revision 214170)
@@ -207,7 +207,7 @@ 
   _list_add (lp);
   bnd = BLIST_BND (*lp);
 
-  BND_TO (bnd) = to;
+  SET_BND_TO (bnd) = to;
   BND_PTR (bnd) = ptr;
   BND_AV (bnd) = NULL;
   BND_AV1 (bnd) = NULL;
@@ -6463,4 +6463,14 @@ 
   return SEL_REGION_BB_INFO (bb)->note_list;
 }
 
+rtx_insn *BND_TO (bnd_t bnd)
+{
+  return safe_as_a <rtx_insn *> (bnd->to);
+}
+
+insn_t& SET_BND_TO (bnd_t bnd)
+{
+  return bnd->to;
+}
+
 #endif
Index: gcc/sel-sched-ir.h
===================================================================
--- gcc/sel-sched-ir.h	(revision 214169)
+++ gcc/sel-sched-ir.h	(revision 214170)
@@ -233,7 +233,8 @@ 
   deps_t dc;
 };
 typedef struct _bnd *bnd_t;
-#define BND_TO(B) ((B)->to)
+extern rtx_insn *BND_TO (bnd_t bnd);
+extern insn_t& SET_BND_TO (bnd_t bnd);
 
 /* PTR stands not for pointer as you might think, but as a Path To Root of the
    current instruction group from boundary B.  */