This is the mail archive of the
mailing list for the GCC project.
[PATCH 0/3] IVOPTS: support profiling
- From: marxin <mliska at suse dot cz>
- To: gcc-patches at gcc dot gnu dot org
- Cc: amker dot cheng at gmail dot com
- Date: Fri, 29 Apr 2016 13:56:51 +0200
- Subject: [PATCH 0/3] IVOPTS: support profiling
- Authentication-results: sourceware.org; auth=none
- Resent-user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2
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?
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(-)