This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 04/11] make recog () take a rtx_insn *
- From: tbsaunde+gcc at tbsaunde dot org
- To: gcc-patches at gcc dot gnu dot org
- Date: Mon, 14 Nov 2016 03:09:27 -0500
- Subject: [PATCH 04/11] make recog () take a rtx_insn *
- Authentication-results: sourceware.org; auth=none
- References: <20161114080934.19056-1-tbsaunde+gcc@tbsaunde.org>
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