Re: Unimpressed with pg_attribute_always_inline

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Peter Geoghegan <pg@bowt.ie>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Thomas Munro <thomas.munro@enterprisedb.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2018-01-09T00:22:57Z
Lists: pgsql-hackers
On 2018-01-08 16:20:26 -0800, Peter Geoghegan wrote:
> On Mon, Jan 8, 2018 at 4:12 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> > When I complained that always_inline inhibits debuggability, I did NOT
> > mean what shows up in perf reports.  I'm talking about whether you can
> > break at, or single-step through, a function reliably and whether gdb
> > knows where all the variables are.  In my experience, inlining hurts
> > both of those things, which is why I'm saying that forcing inlining
> > even in non-optimized builds is a bad idea.
> 
> Isn't that an argument against inlining in general, rather than
> forcing inlining in particular?

No. Normal 'inline' annotation doesn't do anything on -O0 / debug
builds. But always_inline does, even though the goal of the usage is
just to override the compiler's inlining heuristics.

Greetings,

Andres Freund


Commits

  1. Improve implementation of pg_attribute_always_inline.

  2. Add pg_attribute_always_inline.