make recog () take a rtx_insn *
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>
Mon, 21 Nov 2016 06:15:08 +0000 (06:15 +0000)
committerTrevor Saunders <tbsaunde@gcc.gnu.org>
Mon, 21 Nov 2016 06:15:08 +0000 (06:15 +0000)
gcc/ChangeLog:

2016-11-21  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.

From-SVN: r242651

gcc/ChangeLog
gcc/config/v850/v850.c
gcc/expr.c
gcc/genrecog.c
gcc/recog.h

index b9f2dc814f8eca50190a5b5d56f743c08a928f86..b08f0813811be4e6e97cb9a4695e479a87e92f06 100644 (file)
@@ -1,3 +1,12 @@
+2016-11-21  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.
+
 2016-11-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
 
        * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): split
index 91e182f06c1251571c5e36efb21fb1e46d402f2d..c27bb6d021f09aa5cc33b4b4bd50a4e8bed6099a 100644 (file)
@@ -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)
            {
index a51c16478d3edc23daa98a751f848eb334d39d3b..fe752fb8f2b3dc17b644da9d25c15e72cd3800b3 100644 (file)
@@ -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;
 
index a8e8c22340cafd939ec2d06da39921b9c8fe1bda..e4377c3afa44575a198963a9c101b68287bf48a3 100644 (file)
@@ -5099,11 +5099,6 @@ print_pattern (output_state *os, pattern_routine *routine)
 static void
 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";
   printf ("\n");
   switch (os->type)
     {
@@ -5116,8 +5111,8 @@ print_subroutine (output_state *os, state *s, int proc_id)
       else
        printf ("int\nrecog");
       printf (" (rtx x1 ATTRIBUTE_UNUSED,\n"
-             "\t%s ATTRIBUTE_UNUSED,\n"
-             "\tint *pnum_clobbers ATTRIBUTE_UNUSED)\n", insn_param);
+             "\trtx_insn *insn ATTRIBUTE_UNUSED,\n"
+             "\tint *pnum_clobbers ATTRIBUTE_UNUSED)\n");
       break;
 
     case SPLIT:
@@ -5142,11 +5137,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");
index 3a59af8608fa24df7fdfcd8838c7c3ea75692b71..9f6c42c83a205a033c0476893196caf8cc61b4d4 100644 (file)
@@ -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