On Fri, Apr 29, 2016 at 12:56 PM, marxin <mli...@suse.cz> wrote: > Hello. > > As profile-guided optimization can provide very useful information > about basic block frequencies within a loop, following patch set leverages > that information. It speeds up a single benchmark from upcoming SPECv6 > suite by 20% (-O2 -profile-generate/-fprofile use) and I think it can > also improve others (currently measuring numbers for PGO). > > Idea is quite simple, where each cost (belonging to a BB) is > multiplied by (bb_frequency / header_frequency), which suppress IV uses > in basic blocks with a low frequency. > > The patch set can bootstrap on ppc64le-linux-gnu (and also > x86_64-linux-gnu) and no new regression is introduced. > > Ready for trunk? Hi Martin, Thanks for working on this. I will first measure it on AArch64 and read it in details.
Thanks, bin > Thanks, > Martin > > marxin (3): > Encapsulate comp_cost within a class with methods. > Add profiling support for IVOPTS > Enhance dumps of IVOPTS > > gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C | 2 +- > gcc/tree-ssa-loop-ivopts.c | 690 > ++++++++++++++++++++++--------- > 2 files changed, 491 insertions(+), 201 deletions(-) > > -- > 2.8.1 >