summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/genpeep.c6
-rw-r--r--gcc/jump.c8
-rw-r--r--gcc/output.h2
-rw-r--r--gcc/rtl.h2
5 files changed, 22 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5d9fc45c06f..840c79f1f8a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,15 @@
+2014-08-21 David Malcolm <dmalcolm@redhat.com>
+
+ * output.h (peephole): Strengthen return type from rtx to
+ rtx_insn *.
+ * rtl.h (delete_for_peephole): Likewise for both params.
+ * genpeep.c (main): In generated "peephole" function, strengthen
+ return type and local "insn" from rtx to rtx_insn *. For now,
+ rename param "ins1" to "uncast_ins1", adding "ins1" back as an
+ rtx_insn *, with a checked cast.
+ * jump.c (delete_for_peephole): Strengthen params "from", "to" and
+ locals "insn", "next", "prev" from rtx to rtx_insn *.
+
2014-08-21 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/62112
diff --git a/gcc/genpeep.c b/gcc/genpeep.c
index a8afadbc809..bc2785e6e7d 100644
--- a/gcc/genpeep.c
+++ b/gcc/genpeep.c
@@ -378,8 +378,10 @@ from the machine description file `md'. */\n\n");
printf ("extern rtx peep_operand[];\n\n");
printf ("#define operands peep_operand\n\n");
- printf ("rtx\npeephole (rtx ins1)\n{\n");
- printf (" rtx insn ATTRIBUTE_UNUSED, x ATTRIBUTE_UNUSED, pat ATTRIBUTE_UNUSED;\n\n");
+ printf ("rtx_insn *\npeephole (rtx uncast_ins1)\n{\n");
+ printf (" rtx_insn *ins1 = as_a <rtx_insn *> (uncast_ins1);\n");
+ printf (" rtx_insn *insn ATTRIBUTE_UNUSED;\n");
+ printf (" rtx x ATTRIBUTE_UNUSED, pat ATTRIBUTE_UNUSED;\n\n");
/* Early out: no peepholes for insns followed by barriers. */
printf (" if (NEXT_INSN (ins1)\n");
diff --git a/gcc/jump.c b/gcc/jump.c
index 6a8b9d5b7b4..96bdbe8ffbb 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -1398,14 +1398,14 @@ delete_related_insns (rtx insn)
peephole insn that will replace them. */
void
-delete_for_peephole (rtx from, rtx to)
+delete_for_peephole (rtx_insn *from, rtx_insn *to)
{
- rtx insn = from;
+ rtx_insn *insn = from;
while (1)
{
- rtx next = NEXT_INSN (insn);
- rtx prev = PREV_INSN (insn);
+ rtx_insn *next = NEXT_INSN (insn);
+ rtx_insn *prev = PREV_INSN (insn);
if (!NOTE_P (insn))
{
diff --git a/gcc/output.h b/gcc/output.h
index 2b32601d861..53d575a3de6 100644
--- a/gcc/output.h
+++ b/gcc/output.h
@@ -281,7 +281,7 @@ extern void assemble_addr_to_section (rtx, section *);
extern int get_pool_size (void);
#ifdef HAVE_peephole
-extern rtx peephole (rtx);
+extern rtx_insn *peephole (rtx);
#endif
extern void output_shared_constant_pool (void);
diff --git a/gcc/rtl.h b/gcc/rtl.h
index f9713f1fcbc..7d31333c6be 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -3062,7 +3062,7 @@ extern rtx reversed_comparison (const_rtx, enum machine_mode);
extern enum rtx_code reversed_comparison_code (const_rtx, const_rtx);
extern enum rtx_code reversed_comparison_code_parts (enum rtx_code, const_rtx,
const_rtx, const_rtx);
-extern void delete_for_peephole (rtx, rtx);
+extern void delete_for_peephole (rtx_insn *, rtx_insn *);
extern int condjump_in_parallel_p (const_rtx);
/* In emit-rtl.c. */