Commit 579f75ae by David Malcolm Committed by David Malcolm

peephole returns an rtx_insn

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 *.

From-SVN: r214264
parent 622dbadf
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> 2014-08-21 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/62112 PR tree-optimization/62112
......
...@@ -378,8 +378,10 @@ from the machine description file `md'. */\n\n"); ...@@ -378,8 +378,10 @@ from the machine description file `md'. */\n\n");
printf ("extern rtx peep_operand[];\n\n"); printf ("extern rtx peep_operand[];\n\n");
printf ("#define operands peep_operand\n\n"); printf ("#define operands peep_operand\n\n");
printf ("rtx\npeephole (rtx ins1)\n{\n"); printf ("rtx_insn *\npeephole (rtx uncast_ins1)\n{\n");
printf (" rtx insn ATTRIBUTE_UNUSED, x ATTRIBUTE_UNUSED, pat ATTRIBUTE_UNUSED;\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. */ /* Early out: no peepholes for insns followed by barriers. */
printf (" if (NEXT_INSN (ins1)\n"); printf (" if (NEXT_INSN (ins1)\n");
......
...@@ -1398,14 +1398,14 @@ delete_related_insns (rtx insn) ...@@ -1398,14 +1398,14 @@ delete_related_insns (rtx insn)
peephole insn that will replace them. */ peephole insn that will replace them. */
void 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) while (1)
{ {
rtx next = NEXT_INSN (insn); rtx_insn *next = NEXT_INSN (insn);
rtx prev = PREV_INSN (insn); rtx_insn *prev = PREV_INSN (insn);
if (!NOTE_P (insn)) if (!NOTE_P (insn))
{ {
......
...@@ -281,7 +281,7 @@ extern void assemble_addr_to_section (rtx, section *); ...@@ -281,7 +281,7 @@ extern void assemble_addr_to_section (rtx, section *);
extern int get_pool_size (void); extern int get_pool_size (void);
#ifdef HAVE_peephole #ifdef HAVE_peephole
extern rtx peephole (rtx); extern rtx_insn *peephole (rtx);
#endif #endif
extern void output_shared_constant_pool (void); extern void output_shared_constant_pool (void);
......
...@@ -3062,7 +3062,7 @@ extern rtx reversed_comparison (const_rtx, enum machine_mode); ...@@ -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 (const_rtx, const_rtx);
extern enum rtx_code reversed_comparison_code_parts (enum rtx_code, const_rtx, extern enum rtx_code reversed_comparison_code_parts (enum rtx_code, const_rtx,
const_rtx, 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); extern int condjump_in_parallel_p (const_rtx);
/* In emit-rtl.c. */ /* In emit-rtl.c. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment