On Wed, 2014-08-13 at 12:07 -0600, Jeff Law wrote: > On 08/06/14 11:20, David Malcolm wrote: > > (define_bypass) clauses in .md files can specify the name of a guard > > function as their final operand. Currently these functions are called > > with a pair of rtx. This patch strengthens insn-automata.c so that such > > guard functions are passed a pair of rtx_insn *, allowing these guard > > functions to be similarly strengthened in the per-target phase of this > > patch kit. > > > > gcc/ > > * genautomata.c (output_internal_insn_latency_func): When writing > > the function "internal_insn_latency" to insn-automata.c, > > strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus > > allowing the optional guard function of (define_bypass) clauses to > > expect a pair of rtx_insn *, rather than a pair of rtx. > > (output_insn_latency_func): When writing the function > > "insn_latency", add an "uncast_" prefix to params "insn" and > > "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals > > using checked casts from the params, thus enabling the above > > change to the generated "internal_insn_latency" function. > OK. Thanks; committed to trunk as r214273, with the trivial fixup of as_a_nullable to safe_as_a.