On Fri, Jul 07, 2017 at 12:28:11PM +0100, Wilco Dijkstra wrote: > This patch further improves aarch64_legitimate_constant_p. Allow all > integer, floating point and vector constants. Allow label references > and non-anchor symbols with an immediate offset. This allows such > constants to be rematerialized, resulting in smaller code and fewer stack > spills. > > SPEC2006 codesize reduces by 0.08%, SPEC2017 by 0.13%. > > Bootstrap OK, OK for commit?
This is mostly OK, but I think you lose one case we previosuly permitted, buried in aarch64_classify_address (the CONST case). OK with that case handled too (assuming that passes a bootstrap and test). Reviewed by: James Greenhalgh <james.greenha...@arm.com> Thanks, James > > ChangeLog: > 2017-07-07 Wilco Dijkstra <wdijk...@arm.com> > > * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): > Return true for more constants, symbols and label references. > (aarch64_valid_floating_const): Remove unused function. >