On Mon, Oct 24, 2016 at 04:19:47PM +0000, Wilco Dijkstra wrote: > The add expander still contains some expansion code that was required for the > previous prolog/epilog code, but which is no longer needed. I also noticed > that > the current version splits off immediates from frame addressing instructions, > which doesn't seem a good idea. Avoiding this resulted in small codesize > improvements.
OK, but... > ChangeLog: > 2016-10-24 Wilco Dijkstra <wdijk...@arm.com> > > gcc/ > * config/aarch64/aarch64.md (add<mode>3): Remove > redundant code. Don't split frame based additions. > + /* If the constant is too large for a single instruction and isn't frame > + based, split off the immediate so it is available for CSE. */ > + if (!aarch64_plus_immediate (operands[2], <MODE>mode) > + && can_create_pseudo_p () && !REGNO_PTR_FRAME_P (REGNO (operands[1]))) Split the second && on to a newline: > + if (!aarch64_plus_immediate (operands[2], <MODE>mode) > + && can_create_pseudo_p () > + && !REGNO_PTR_FRAME_P (REGNO (operands[1]))) As so. Thanks, James