On 24/05/16 09:52, Kyrill Tkachov wrote: > Hi all, > > As the PR says, the gen_operands_ldrd_strd function has a spurious return > false in it. > It seems to have been there from the beginning when that code was added. > > The code is trying to transform: > mov r0, 0 > str r0, [r2] > mov r0, 1 > str r0, [r2, #4] > into: > mov r0, 0 > mov r1, 1 > strd r0, r1, [r2] > > but thanks to this return only works on Thumb2. > This means that the path it was not getting tested, and we weren't generating > as many STRD instructions as we could when compiling with -marm. > This patch removes the spurious return. It also re-indents the comment for > this > transformation (replacing 8 spaces with tab) and adds a mention of the > behaviour > for ARM state that was missing. > > With it bootstrap and test in arm state on arm-none-linux-gnueabihf runs fine. > > Across all of SPEC2006 this increased the number of STRD instructions used by > 0.12% > (from 121375 -> 121530) > > Ok for trunk?
Ok - oops ! Ramana > > Thanks, > Kyrill > > 2016-05-24 Kyrylo Tkachov <kyrylo.tkac...@arm.com> > > PR target/69857 > * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early > return. Reindent transformation comment and mention the ARM state > behavior.