This is the mail archive of the
mailing list for the GCC project.
Re: 100x perfomance regression between gcc 3.4.5 and gcc 4.X
- From: Gabriel Dos Reis <gdr at integrable-solutions dot net>
- To: Andrew Pinski <pinskia at physics dot uc dot edu>
- Cc: tbptbp at gmail dot com (tbp), stevenb dot gcc at gmail dot com (Steven Bosscher), ernesto at ornl dot gov (Ernest L. Williams Jr.), nbkolchin at gmail dot com (Nickolay Kolchin), richard dot guenther at gmail dot com (Richard Guenther), gcc at gcc dot gnu dot org
- Date: 13 Mar 2006 01:55:47 +0100
- Subject: Re: 100x perfomance regression between gcc 3.4.5 and gcc 4.X
- References: <200603130018.k2D0IrbD021968@earth.phy.uc.edu>
Andrew Pinski <firstname.lastname@example.org> writes:
| > On 3/12/06, Steven Bosscher <email@example.com> wrote:
| > > > Yes, why is the benchmark not valid?
| > >
| > > It is valid. We should understand why this behavior has changed so drastically.
| > This benchmark maybe useless, it still exposes a weakness of gcc4. At
| > least it's not news to me:
| > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21195
| > So that PR has been closed when gcc-devs marked all those intrinsics
| > as force_inline. That's also the kludge i use with my code. The real
| > problem is once you start marking some functions as force_inline, you
| > upset the inlining heuristic even more creating even more silly
| > inlining misses, rince, repeat.
| > At the end of the day, everything is marked either force_inline or
| > noinline and you'd be better off without a heuristic at all.
| Actually the best way of improving the inline heuristics is to get
| a real testcase (and not some benchmark) where the inline heuristics
| is messed up.
I suppose that is part of the problem. When users send feedback (for
example, by filling a PR) they feel the PRs are closed pretty quickly
with no acknowledgement of what is happening and the way that affects
program overall structures, and they can't do anything anyway --
because they feel the "masters" would close the PR with no possibility
of appeal. When they send code snippets that demonstrate the
particular aspect of the compiler making their life miserable, they
are told their testcases are not "real". However, we should also
acknowledge that aspects of the inlines are tuned based on
benchmarks. For users, that course of action appears discouraging or
irritating, if not incoherent.