On Mon, Oct 23, 2017 at 06:58:29PM +0100, Richard Sandiford wrote: > Ping.
Makes sense. OK. Reviewed-By: James Greenhalgh <james.greenha...@arm.com> James > Richard Sandiford <richard.sandif...@linaro.org> writes: > > Richard Sandiford <richard.sandif...@linaro.org> writes: > >> James Greenhalgh <james.greenha...@arm.com> writes: > >>> On Tue, Aug 22, 2017 at 10:23:47AM +0100, Richard Sandiford wrote: > >>>> Previously aarch64_classify_address used an rtx code to distinguish > >>>> LDP/STP addresses from normal addresses; the code was PARALLEL > >>>> to select LDP/STP and anything else to select normal addresses. > >>>> This patch replaces that parameter with a dedicated enum. > >>>> > >>>> The SVE port will add another enum value that didn't map naturally > >>>> to an rtx code. > >>>> > >>>> Tested on aarch64-linux-gnu. OK to install? > >>> > >>> I can't say I really like this new interface, I'd prefer two wrappers > >>> aarch64_legitimate_address_p , aarch64_legitimate_ldp_address_p (or > >>> similar) > >>> around your new interface, and for most code to simply call the wrapper. > >>> Or an overloaded call that filled in ADDR_QUERY_M automatically, to save > >>> that spreading through the backend. > >> > >> OK, I went for the second, putting the query type last and making it > >> an optional argument. > > > > By way of a ping, here's the patch updated to current trunk. > > > > Tested on aarch64-linux-gnu. OK to install? > > > > Thanks, > > Richard > > > > 2017-09-18 Richard Sandiford <richard.sandif...@linaro.org> > > Alan Hayward <alan.hayw...@arm.com> > > David Sherwood <david.sherw...@arm.com> > > > > gcc/ > > * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): New enum. > > (aarch64_legitimate_address_p): Use it instead of an rtx code, > > as an optional final parameter. > > * config/aarch64/aarch64.c (aarch64_classify_address): Likewise. > > (aarch64_legitimate_address_p): Likewise. > > (aarch64_address_valid_for_prefetch_p): Update calls accordingly. > > (aarch64_legitimate_address_hook_p): Likewise. > > (aarch64_print_operand_address): Likewise. > > (aarch64_address_cost): Likewise. > > * config/aarch64/constraints.md (Umq, Ump): Likewise. > > * config/aarch64/predicates.md (aarch64_mem_pair_operand): Likewise. > >