From: David Malcolm Date: Thu, 21 Aug 2014 09:40:09 +0000 (+0000) Subject: peephole returns an rtx_insn X-Git-Tag: releases/gcc-5.1.0~5298 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=579f75aefaf6ad541772195667b4f3afbf738fe5;p=thirdparty%2Fgcc.git peephole returns an rtx_insn 2014-08-21 David Malcolm * 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5d9fc45c06fa..840c79f1f8aa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2014-08-21 David Malcolm + + * 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 PR tree-optimization/62112 diff --git a/gcc/genpeep.c b/gcc/genpeep.c index a8afadbc809e..bc2785e6e7d4 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 (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 6a8b9d5b7b4b..96bdbe8ffbbb 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 2b32601d861c..53d575a3de66 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 f9713f1fcbc1..7d31333c6bef 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. */