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]

[PATCH 04/11] make recog () take a rtx_insn *


From: Trevor Saunders <tbsaunde+gcc@tbsaunde.org>

gcc/ChangeLog:

2016-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config/v850/v850.c (expand_prologue): Adjust.
	(expand_epilogue): Likewise.
	* expr.c (init_expr_target): Likewise.
	* genrecog.c (print_subroutine): Always make the argument type
	rtx_insn *.
	* recog.h: Adjust prototype.
---
 gcc/config/v850/v850.c | 4 ++--
 gcc/expr.c             | 4 ++--
 gcc/genrecog.c         | 8 +-------
 gcc/recog.h            | 2 +-
 4 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c
index 91e182f..c27bb6d 100644
--- a/gcc/config/v850/v850.c
+++ b/gcc/config/v850/v850.c
@@ -1741,7 +1741,7 @@ expand_prologue (void)
 
 	  v850_all_frame_related (save_all);
 
-	  code = recog (save_all, NULL_RTX, NULL);
+	  code = recog (save_all, NULL, NULL);
 	  if (code >= 0)
 	    {
 	      rtx insn = emit_insn (save_all);
@@ -1887,7 +1887,7 @@ expand_epilogue (void)
 	      offset -= 4;
 	    }
 
-	  code = recog (restore_all, NULL_RTX, NULL);
+	  code = recog (restore_all, NULL, NULL);
 	  
 	  if (code >= 0)
 	    {
diff --git a/gcc/expr.c b/gcc/expr.c
index 0b0946d..5d19699 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -109,7 +109,7 @@ static HOST_WIDE_INT int_expr_size (tree);
 void
 init_expr_target (void)
 {
-  rtx insn, pat;
+  rtx pat;
   machine_mode mode;
   int num_clobbers;
   rtx mem, mem1;
@@ -125,7 +125,7 @@ init_expr_target (void)
      useless RTL allocations.  */
   reg = gen_rtx_REG (word_mode, LAST_VIRTUAL_REGISTER + 1);
 
-  insn = rtx_alloc (INSN);
+  rtx_insn *insn = as_a<rtx_insn *> (rtx_alloc (INSN));
   pat = gen_rtx_SET (NULL_RTX, NULL_RTX);
   PATTERN (insn) = pat;
 
diff --git a/gcc/genrecog.c b/gcc/genrecog.c
index a8e8c22..aa7f629 100644
--- a/gcc/genrecog.c
+++ b/gcc/genrecog.c
@@ -5102,8 +5102,7 @@ print_subroutine (output_state *os, state *s, int proc_id)
   /* For now, the top-level "recog" takes a plain "rtx", and performs a
      checked cast to "rtx_insn *" for use throughout the rest of the
      function and the code it calls.  */
-  const char *insn_param
-    = proc_id > 0 ? "rtx_insn *insn" : "rtx uncast_insn";
+  const char *insn_param = "rtx_insn *insn";
   printf ("\n");
   switch (os->type)
     {
@@ -5142,11 +5141,6 @@ print_subroutine (output_state *os, state *s, int proc_id)
   if (proc_id == 0)
     {
       printf ("  recog_data.insn = NULL;\n");
-      if (os->type == RECOG)
-	{
-	  printf ("  rtx_insn *insn ATTRIBUTE_UNUSED;\n");
-	  printf ("  insn = safe_as_a <rtx_insn *> (uncast_insn);\n");
-	}
     }
   print_state (os, s, 2, true);
   printf ("}\n");
diff --git a/gcc/recog.h b/gcc/recog.h
index 3a59af8..9f6c42c 100644
--- a/gcc/recog.h
+++ b/gcc/recog.h
@@ -124,7 +124,7 @@ extern int offsettable_address_addr_space_p (int, machine_mode, rtx,
 					  ADDR_SPACE_GENERIC)
 extern bool mode_dependent_address_p (rtx, addr_space_t);
 
-extern int recog (rtx, rtx, int *);
+extern int recog (rtx, rtx_insn *, int *);
 #ifndef GENERATOR_FILE
 static inline int recog_memoized (rtx_insn *insn);
 #endif
-- 
2.9.3.dirty


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