On Tue, 2020-06-02 at 15:00 +0100, Richard Sandiford wrote: > This patch uses parameter packs to define insn_gen_fn::operator(). > I guess in some ways it's C++-ification for its own sake, but it does > make things simpler and removes the current artificial limit of 16 > arguments. > > Note that the call is still strongly typed: all arguments have to have > implicit conversions to rtx. Error messages for bad arguments look > reasonable. > > I'm sure there are more elegant ways of getting the function type, > but this version at least fits on one line, so I didn't try too > hard to find an alternative. > > Tested on aarch64-linux-gnu and x86_64-linux-gnu. OK to install? > > Richard > > > 2020-06-02 Richard Sandiford <richard.sandif...@arm.com> > > gcc/ > * recog.h (insn_gen_fn::f0, insn_gen_fn::f1, insn_gen_fn::f2) > (insn_gen_fn::f3, insn_gen_fn::f4, insn_gen_fn::f5, insn_gen_fn::f6) > (insn_gen_fn::f7, insn_gen_fn::f8, insn_gen_fn::f9, insn_gen_fn::f10) > (insn_gen_fn::f11, insn_gen_fn::f12, insn_gen_fn::f13) > (insn_gen_fn::f14, insn_gen_fn::f15, insn_gen_fn::f16): Delete. > (insn_gen_fn::operator()): Replace overloaded definitions with > a parameter-pack version. OK.
Jeff >