This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: 100x perfomance regression between gcc 3.4.5 and gcc 4.X

Andrew Pinski <> writes:

| > 
| > On 3/12/06, Steven Bosscher <> 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:
| >
| > 
| > 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.

-- Gaby

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]