From: David Malcolm Date: Thu, 21 Aug 2014 10:13:22 +0000 (+0000) Subject: Pass "insn" as an rtx_insn within generated get_attr_ fns in insn-attrtab.c X-Git-Tag: releases/gcc-5.1.0~5297 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2903befbec9fb56ce7883952bf040daa80041ae8;p=thirdparty%2Fgcc.git Pass "insn" as an rtx_insn within generated get_attr_ fns in insn-attrtab.c 2014-08-21 David Malcolm * genattrtab.c (write_attr_get): Within the generated get_attr_ functions, rename param "insn" to "uncast_insn" and reintroduce "insn" as an local rtx_insn * using a checked cast, so that "insn" is an rtx_insn * within insn-attrtab.c From-SVN: r214265 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 840c79f1f8aa..b7b4f1054103 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-08-21 David Malcolm + + * genattrtab.c (write_attr_get): Within the generated get_attr_ + functions, rename param "insn" to "uncast_insn" and reintroduce + "insn" as an local rtx_insn * using a checked cast, so that "insn" + is an rtx_insn * within insn-attrtab.c + 2014-08-21 David Malcolm * output.h (peephole): Strengthen return type from rtx to diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c index 9db2ade01f80..49c787276575 100644 --- a/gcc/genattrtab.c +++ b/gcc/genattrtab.c @@ -4027,9 +4027,9 @@ write_attr_get (FILE *outf, struct attr_desc *attr) /* If the attribute name starts with a star, the remainder is the name of the subroutine to use, instead of `get_attr_...'. */ if (attr->name[0] == '*') - fprintf (outf, "%s (rtx insn ATTRIBUTE_UNUSED)\n", &attr->name[1]); + fprintf (outf, "%s (rtx uncast_insn ATTRIBUTE_UNUSED)\n", &attr->name[1]); else if (attr->is_const == 0) - fprintf (outf, "get_attr_%s (rtx insn ATTRIBUTE_UNUSED)\n", attr->name); + fprintf (outf, "get_attr_%s (rtx uncast_insn ATTRIBUTE_UNUSED)\n", attr->name); else { fprintf (outf, "get_attr_%s (void)\n", attr->name); @@ -4050,6 +4050,9 @@ write_attr_get (FILE *outf, struct attr_desc *attr) fprintf (outf, "{\n"); + if (attr->name[0] == '*' || attr->is_const == 0) + fprintf (outf, " rtx_insn *insn = as_a (uncast_insn);\n"); + /* Find attributes that are worth caching in the conditions. */ cached_attr_count = 0; attrs_seen_more_than_once = 0;