On 11/07/12 12:30, Tom de Vries wrote: > On 13/11/10 10:50, Eric Botcazou wrote: >>> I profiled the pass on spec2000: >>> >>> -mabi=32 -mabi=64 >>> ee-pass (usr time): 0.70 1.16 >>> total (usr time): 919.30 879.26 >>> ee-pass (%): 0.08 0.13 >>> >>> The pass takes 0.13% or less of the total usr runtime. >> >> For how many hits? What are the numbers with --param ee-max-propagate=0? >> >>> Is it necessary to improve the runtime of this pass? >> >> I've already given my opinion about the implementation. The other passes in >> the compiler try hard not to rescan everything when a single bit changes; as >> currently written, yours doesn't. >> > > Eric, > > I've done the following: > - refactored the pass such that it now scans at most twice over all > instructions. > - updated the patch to be applicable to current trunk > - updated the motivating example to a more applicable one (as discussed in > this thread), and added that one as test-case. > - added a part in the header comment illustrating the working of the pass > on the motivating example. > > bootstrapped and reg-tested on x86_64 and i686. > > build and reg-tested on mips, mips64, and arm. > > OK for trunk? >
Eric, does the new patch meet your concerns related to rescanning? If so, OK for trunk? Thanks, - Tom > Thanks, > - Tom > > 2012-07-10 Tom de Vries <t...@codesourcery.com> > > * ee.c: New file. > * tree-pass.h (pass_ee): Declare. > * opts.c ( default_options_table): Set flag_ee at -O2. > * timevar.def (TV_EE): New timevar. > * common.opt (fextension-elimination): New option. > * Makefile.in (ee.o): New rule. > * passes.c (pass_ee): Add it. > > * gcc.dg/extend-1.c: New test. > * gcc.dg/extend-2.c: Same. > * gcc.dg/extend-2-64.c: Same. > * gcc.dg/extend-3.c: Same. > * gcc.dg/extend-4.c: Same. > * gcc.dg/extend-5.c: Same. > * gcc.target/mips/octeon-bbit-2.c: Make test more robust. >