Hi Richard, > > This hurts code size. > > Therefore I've disabled the new peephole2 for optimize_insn_for_size_p > so that > > the original peephole before r200197 is used when optimising for size. > > > > I've also added a test to confirm that the new peephole2 for the non-CC > > setting variants is being used when optimising for speed, since the > large code > > should be more efficient because the scheduler won't have to deal with > > condition-code setting. > > > > Ok for trunk? > > > > Thanks, > > Kyrill > > > > gcc/ > > 2013-06-21 Kyrylo Tkachov <kyrylo.tkac...@arm.com> > > > > * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)): > > Use the flag setting variants when optimising for size. > > > > > > gcc/testsuite/ > > 2013-06-21 Kyrylo Tkachov <kyrylo.tkac...@arm.com> > > > > * gcc.target/arm/pr46975-2.c: New test. > > > > Not ok. > > This re-introduces the bug that Meador was trying to fix. > > You need to ensure that the condition code register is dead before > applying this peephole.
Thanks for the review. How about this? I'm reusing Meadors' peephole2 and guard the application by checking the CC reg for deadness with peep2_regno_dead_p. Kyrill gcc/ 2013-07-01 Kyrylo Tkachov <kyrylo.tkac...@arm.com> Meador Inge <mead...@codesourcery.com> * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)): Use the flag setting variants when optimising for size. gcc/testsuite/ 2013-07-01 Kyrylo Tkachov <kyrylo.tkac...@arm.com> Meador Inge <mead...@codesourcery.com> * gcc.target/arm/pr46975-2.c: New test.
pr46975.patch
Description: Binary data