This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 012/236] Convert DF_REF_INSN to a function for now


On Tue, 2014-08-12 at 15:20 -0600, Jeff Law wrote:
> On 08/06/14 11:19, David Malcolm wrote:
> > DF_REF_INSN looks up the "insn" field of the referenced df_insn_info.
> > This will eventually be an rtx_insn *, but for now is just an rtx.
> >
> > As further scaffolding: for now, convert DF_REF_INSN to a function,
> > adding a checked downcast to rtx_insn *.  This can eventually be
> > converted back to macro when the field is an rtx_insn *.
> >
> > gcc/
> > 	* df-core.c (DF_REF_INSN): New, using a checked cast for now.
> > 	* df.h (DF_REF_INSN): Convert from a macro to a function, so
> > 	that we can return an rtx_insn *.
> >
> > /
> > 	* rtx-classes-status.txt: Add DF_REF_INSN.
> OK.

Thanks.

Fixed up the as_a_nullable to safe_as_a, and committed to trunk as
r214160, 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 for 9 targets.

Am attaching what I committed.

Dave

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

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 214159)
+++ ChangeLog	(revision 214160)
@@ -1,3 +1,7 @@
+2014-08-19  David Malcolm  <dmalcolm@redhat.com>
+
+	* rtx-classes-status.txt (TODO): Add DF_REF_INSN.
+
 2014-08-19  Joost VandeVondele <vondele@gcc.gnu.org>
 
 	* MAINTAINERS (Write After Approval): Add myself.
Index: rtx-classes-status.txt
===================================================================
--- rtx-classes-status.txt	(revision 214159)
+++ rtx-classes-status.txt	(revision 214160)
@@ -14,5 +14,6 @@
 
 TODO: "Scaffolding" to be removed
 =================================
+* DF_REF_INSN
 * SET_BB_HEAD, SET_BB_END, SET_BB_HEADER, SET_BB_FOOTER
 * SET_NEXT_INSN, SET_PREV_INSN
Index: gcc/ChangeLog
===================================================================
--- gcc/ChangeLog	(revision 214159)
+++ gcc/ChangeLog	(revision 214160)
@@ -1,3 +1,9 @@
+2014-08-19  David Malcolm  <dmalcolm@redhat.com>
+
+	* df-core.c (DF_REF_INSN): New, using a checked cast for now.
+	* df.h (DF_REF_INSN): Convert from a macro to a function, so
+	that we can return an rtx_insn *.
+
 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
 
 	* config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
Index: gcc/df-core.c
===================================================================
--- gcc/df-core.c	(revision 214159)
+++ gcc/df-core.c	(revision 214160)
@@ -2502,3 +2502,9 @@
   df_chain_dump (link, stderr);
   fputc ('\n', stderr);
 }
+
+rtx_insn *DF_REF_INSN (df_ref ref)
+{
+  rtx insn = ref->base.insn_info->insn;
+  return safe_as_a <rtx_insn *> (insn);
+}
Index: gcc/df.h
===================================================================
--- gcc/df.h	(revision 214159)
+++ gcc/df.h	(revision 214160)
@@ -649,7 +649,7 @@
 			: BLOCK_FOR_INSN (DF_REF_INSN (REF)))
 #define DF_REF_BBNO(REF) (DF_REF_BB (REF)->index)
 #define DF_REF_INSN_INFO(REF) ((REF)->base.insn_info)
-#define DF_REF_INSN(REF) ((REF)->base.insn_info->insn)
+extern rtx_insn *DF_REF_INSN (df_ref ref);
 #define DF_REF_INSN_UID(REF) (INSN_UID (DF_REF_INSN(REF)))
 #define DF_REF_CLASS(REF) ((REF)->base.cl)
 #define DF_REF_TYPE(REF) ((REF)->base.type)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]