On 18/04/2012, at 9:17 PM, Richard Guenther wrote: > On Wed, Apr 18, 2012 at 4:15 AM, Maxim Kuvyrkov <ma...@codesourcery.com> > wrote: >> Steven, >> J"orn, >> >> I am looking into fixing performance regression on EEMBC's bitmnp01, and a >> version of your combined patch attached to PR38785 still works very well. >> Would you mind me getting it through upstream review, or are there any >> issues with contributing this patch to GCC mainline? >> >> We (CodeSourcery/Mentor) were carrying this patch in our toolchains since >> GCC 4.4, and it didn't show any performance or correctness problems on x86, >> ARM, MIPS, and other architectures. It also reliably fixes bitmnp01 >> regression, which is still present in current mainline. >> >> I have tested this patch on recent mainline on i686-linux-gnu with no >> regressions. Unless I hear from you to the contrary, I will push this patch >> for upstream review and, hopefully, get it checked in. >> >> Previous discussion of this patch is at >> http://gcc.gnu.org/ml/gcc-patches/2009-03/msg00250.html > > The addition of -ftree-pre-partial-partial is ok if you change its name to > -ftree-partial-pre and add documentation to invoke.texi.
OK. Gerald, does the patch for gcc-4.8/changes.html look OK? > > + /* Assuming the expression is 50% anticipatable, we have > + to multiply the number of insertions needed by two for a cost > + comparison. */ > > why assume 50% anticipatibility if you can compute the exact > anticipatibility? Do you mean partial anticipatibility as in the updated patch? To compute exact anticipatibility we would need to traverse the bottom part of CFG, to get the numbers right. > > + if (!optimize_function_for_speed_p (cfun) > > please look at how I changed regular PRE to look at whether we want to > optimize the path which has the redundancy for speed via > optimize_edge_for_speed_p. The same surgerly should be applied to > PPRE. OK. In the updated patch we require at least one of the successors the partially anticipates the expression to be on the speed path. Any other comments? Thank you, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics
pr38785-rel-note.patch
Description: Binary data
pr38785.ChangeLog
Description: Binary data
pr38785.patch
Description: Binary data